js 原型和原型链 - 简解

88 阅读1分钟

是什么:

原型: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