美文网首页
prototype和__proto__理解笔记

prototype和__proto__理解笔记

作者: xiao_xie_shen | 来源:发表于2019-05-15 17:41 被阅读0次

    构造函数

    function Person(){
        
    }
    
    var p1 = new Person();
    

    Person就是一个构造函数,通过new创建了p1对象实例。

    Person.prototype
    //输出
    {constructor: ƒ}
    
    p1.__proto__ === Person.prototype;
    > > > true
    

    每个函数都会有一个prototype属性,这个属性是一个指针,指向一个对象(==只有函数才有==)

    Person.prototype.constructor === Person === p1.constructor;
    > > > true
    
    Person.prototype.constructor
    > > > ƒ Person(){}
    

    总结

    xxx.prototype 指向xxx自身的构造函数(xxx是一个class或者是一个构造函数)

    xxx.prototype.proto 指向object原型

    例如:

    class A {
      constructor(aa) {  
          this.aa = 'aa';  
      }
      bb() {   
          return 'bb' ;
      }
    }
    
    function Person(){
        
    }
    
    let cc = new Person();
    
    1. A和Person的prototype 指向自身
    2. A.prototype.proto 指向object原型
    3. cc.prototype 等于undefined
    4. cc.proto 等于 Person.prototype

    自我理解

    • .prototype 代表原型 即函数本身
    • .proto 粗俗理解为调用人的“爹”,即爹的原型

    参考文章

    相关文章

      网友评论

          本文标题:prototype和__proto__理解笔记

          本文链接:https://www.haomeiwen.com/subject/dyjmaqtx.html