JS prototype 生成机制

默认的 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 上挂载,并获取

原文地址:https://www.cnblogs.com/ZweiZhao/p/10024628.html