prototype和__proto__理解笔记

2019-05-15  本文已影响0人  xiao_xie_shen

构造函数

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

自我理解

参考文章

上一篇 下一篇

猜你喜欢

热点阅读