1、prototype
function Person(){
};
Person.prototype.name = "apple";
var p1 = new Person();
Person函数的 prototype 属性指向了一个对象,这个对象正是调用该构造函数而创建的实例的原型

2、_proto_
每一个JavaScript对象(除了 null )都具有的一个属性,叫__proto__,这个属性会指向该对象的原型。
接着上面
p1._proto_ === Person.prototype //true

3、constructor
每个原型都有一个 constructor 属性指向关联的构造函数
Person === Person.prototype.constructor //true

3、原型的原型和原型链
蓝色部分是原型链

//原型链关系
xiaohuang.__proto__ === dog.prototype
dog.prototype.__proto__ === animal.prototype
animal.prototype.__proto__ === Object.prototype
Object.prototype.__proto__ === null

网友评论