默认的 prototype 属性是 Object() 对象,只不过每种类型或者自定义类型锁挂载的对象属性不同。
事实上,prototype 的生成是这样的:
const Func = function() {}
// function Func() {}
typeof Func1.prototype // "object"
Func.prototype = {}
typeof Func1.prototype // "object"
所有内容同样适用于 Array,Object,RegExp,Error,String,Boolean,Number。
获取方式:
Array.prototype
构造函数获取
new Array().__proto__
实例的隐藏链接,注意,这是宿主自带,非 ECMA 官方功能
new Array().constructor.prototype
实例更稳妥的获取
这里注意,Function 的表现会更加特殊,但是本质是一样的,也可以在 Function.prototype.x 上挂载,并获取