JS 原型和原型链的理解(图)
原型

原型图(图片来源:JavaScript高级程序设计)
- 构造函数
Person的原型(Person.prototype) 指向Person Prototype - 原型
Person Prototype的构造函数(Person.prototype.constructor) 指向Person - 实例
person1的隐式原型(person1._proto_ )指向Person Prototype - 实例
person2的隐式原型(person2._proto_ )指向Person Prototype
原型链

原型链图(图片来源:自己画的)
- 第一行:所有类型默认都继承
Object - 第二行:
Super(构造函数)的原型,默认继承自Object - 第三行:
Sub (构造函数)的原型,是Subper的一个实例,继承自Super - 第四行:
subInstance (实例),是Sub的一个实例,继承自Sub
代码实现
function Super() {};
function Sub() {};
Sub.prototype = Object.create(Super.prototype);
// ↑ 或者 Sub.prototype = new Super();(不推荐,子类会具有父类实例的方法,可能不是我们需要的)
Sub.prototype.constructor = Sub; // 修改原型对象,一般要同时修改,constructor 属性的指向
const subInstance = new Sub();

浙公网安备 33010602011771号