记录:
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
prototype、proto和constructor 关系
原文:https://www.cnblogs.com/clicklin/p/9388387.html