是什么:
原型:js的对象都有一个内置的[[Prototype]]私有属性,这个属性指向另一个对象,我们称这个对象为原对象的原型。部分浏览器会带__proto__属性方便访问[[Prototype]]私有属性。
原型链:是利用原型让一个引用类型继承另一个引用类型的属性和方法。然后层层递进,就构成了实例与原型的链条,这就是原型链。
为什么:
原型能用于存放父级的方法、属性
原型链可以实现JS的继承,把父类的原型对象赋值给子类的原型,子类实例就可以访问父类原型上的方法。
怎么做:
function Person(){
this.age = 10;
}
Person.prototype.name = 'lxf';
let p1 = new Person();
console.log(p1);
Person.prototype.constructor == Person
Person.prototype.__proto__.constructor == Object
Person.prototype.__proto__ == Object.prototype //万物皆对象
Object.prototype.__proto__ == null //对象父级为null