1 - 原型是什么?
1.1 - 原型指的是原型属性,原型也是一个对象。
原型指的是两个原型属性:
prototype: 显示原型属性
_proto_: 隐式原型属性
所有函数都有显示原型属性。 它的值叫做原型对象,这个原型对象默认有两个属性:
constructor 指向函数本身
_proto_ 指向Object.prototype
特殊: Object.prototype._proto_ === null 这个就是原型链尽头
注意:箭头函数: 没有 显示原型 属性,不能被new调用 ,只有隐式原型。
所有对象都有隐式原型属性。
对象的隐式原型属性的值指向其构造函数显示原型属性的值
如果这个普通对象是你 new 的,构造函数就是你 new 的函数
如果不是,就是 new Obejct 产生的,所以构造函数就是 Object
所有函数都是 new Function 产生的,包括它自己 Function
所有数组都是 new Array 产生的