介绍一下什么是原型链?什么是原型?

function Person() {}

var person = new Person();

person.name = "Kevin";

console.log(person.name); // Kevin

Person 就是构造函数,person 就是对象。

对于对象而言,每个 JS 对象一定对应一个原型对象,并从原型对象继承属性和方法。对象__proto__属性的值就是它所对应的原型对象。对象的__proto__指向自己构造函数的 prototype。所以对象的原型链就是obj.__proto__.proto__....。对于函数而言,只有函数才有 prototype 属性,Person.prototype 是一个对象,并且有两个属性, 一个是 constructor 指向其构造函数 Person, 一个是 __proto__ 属性:是一个对象,指向上一层的原型。原型链的尽头是Object.prototype。所有对象均从Object.prototype继承属性。

原型链实例.png

发表评论 / Comment

用心评论~