javascript继承

基础知识

javascript 依靠原型链进行属性的查找,当调用对象的属性时js会一步一步链式往上查找直到找到对应属性或到顶层对象(null),如(A是一个构造函数,a是通过构造函数生成的一个实例):

function A(){}
const a = new A()
复制代码
  • js对象有一个constructor函数和一个原型对象(可以通过__proto__属性或Object.getPrototypeOf方法获取)。
  • 函数本身在js中也是一个对象。
  • 函数具有prototype属性,prototype属性本身是一个js对象,prototype对象的constructor指向函数自身。(当通过new 关键词调用函数时,js首先创建一个空对象({}),并将该空对象的原型对象指向该函数的prototype属性,之后将函数体的this指向新建的空对象,执行函数体代码后返回对象)。
  • 实例对象的原型对象指向生成该实例对象的构造函数的prototype属性。

为了便于观看拆成了3个图,可以按照最后的节点映射到其他图上,实际是一张图上的关系(粗横线表示相等关系,箭头代表前面的对象拥有后面的属性)

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享