对于x我测试过的大多数值,以下计算结果为true:
Object.getPrototypeOf(x) === x.constructor.prototype
...但也有一些例外:如果x是字符串,则上面表达式的 LHS 会失败,并出现类似的错误
TypeError: "abc" is not an object
...虽然,例如,"abc".constructor.prototype评估为String.prototype. x如果是数字或布尔值,则会得到类似的结果。
这是怎么回事?前面显示的身份还有更多例外吗?
更重要的是,以上表明x.constructor.prototype比 更健壮Object.getPrototypeOf(x)。
有什么充分的理由不专门使用x.constructor.prototype并完全忘记Object.getPrototypeOf(x)?