prototype、proto和constructor 关系

记录:

1、构造函数:如下,Foo()就是一个构造函数

function Foo(){}

2、prototype:每一个构造函数都有一个属性叫prototype,相当于一个指针,指向它的原型对象

Foo.prototype     //指向原型对象

3、constructor:每个原型对象都有一个属性叫constructor,也是一个指针,指向构造函数,从而实现了构造函数和其原型之间的双向绑定。

function Foo(){}
console.log(Foo == Foo.prototype.constructor); //true

4、__proto__ :所有对象都有一个属性叫__proto__,实例对象的__proto__指向该实例的原型对象

function Foo(){}
var foo=new Foo();
console.log(foo.__proto__ == Foo.prototype);      //true
console.log(foo.__proto__.__proto__ == Object.prototype); //true   因为 foo.__proto__.__proto__是Object的实例对象,所以它等于Object.prototype

  

 

 

posted @ 2018-07-30 00:28  HelloLin  阅读(165)  评论(0编辑  收藏  举报