原型链 解析(JS)

解读函数的 prototype 属性:

  1. 每个函数都有一个prototype 属性(显示原型属性),它默认指向一个Object空对象(即称为:原型对象)
  2. 每个实例对象(new 函数名())都有一个__proto__,称为隐式原型属性
  3. 对象的隐式原型的值为其对应构造函数的显式原型的值(内存结构如图所示:)
  4. 原型对象中有一个属性constructor,它指向函数对象
  5. 给原型对象添加属性(一般都是方法

总结:

  1. 函数的prototype 属性:在定义函数时自动添加的,默认值是一个空Object对象
  2. 对象的__proto__属性:创建对象时自动添加的,默认值为构造函数的prototype属性值
  3. 我们能操作显式原型,不能直接操作隐式原型(ES6之前)

作用:

函数的所有实例的对象自动拥有原型中的属性(方法)

优点:

函数写进入原型(prototype),方便继承调用。
原型链 解析(JS)

相关文章: