我理解的prototype(图)

首先构造对象:

    function person(nick, age){
        this.nick = nick;
        this.age = age;
        this.printName = function(){
              console.log(this.nick);
      }
  }
 var p1 = new Person('LiLi', 20);//new 创建对象
 var p1 = new Person('MM', 25);//new 创建对象

引发下图:

prototype.png

1、p1.、__proto__ 指向>> prototype
2、p2.__proto__ 指向>> prototype
3、 person.prototype 指向>> prototype
4、person.prototype.constructor 指向>> person
5、Person.prototype.__proto__ ==__p1.__proto__.__proto__
6、Person.prototype.__proto__ ==__p2.__proto__.__proto__
7、p1.__proto__ == p2.__proto__

如下:

prototype.png
总结:

1、当 new 一个函数的时候会创建一个对象,『函数.prototype』 等于 『被创建对象.__proto__』

2、一切函数都是由 Function 这个函数创建的,所以『Function.prototype === 被创建的函数.__proto__』

3、一切函数的原型对象都是由 Object 这个函数创建的,所以『Object.prototype === 一切函数.prototype.__proto__』

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容