1、 解读函数的 prototype 属性
- 每个函数都有一个prototype 属性(显示原型属性),它默认指向一个Object空对象(即称为:原型对象)
- 每个实例对象(new 函数名())都有一个__proto__,称为隐式原型属性。
- 对象的隐式原型的值为其对应构造函数的显式原型的值(内存结构如图所示:)
- 原型对象中有一个属性constructor,它指向函数对象
- 给原型对象添加属性(一般都是方法)
总结:
- 函数的prototype 属性:在定义函数时自动添加的,默认值是一个空Object对象
- 对象的__proto__属性:创建对象时自动添加的,默认值为构造函数的prototype属性值
- 我们能操作显式原型,不能直接操作隐式原型(ES6之前)
作用:函数的所有实例的对象自动拥有原型中的属性(方法)
优点:
1、函数写进入原型(prototype),方便继承调用。