JavaScript:语言标准中Object与Object.prototype上方法的基本原理

时间:2016-07-01 12:27:28

标签: javascript object prototype

为什么在Object上定义了JavaScript中的一些便利和反射方法,而在Object.prototype上定义了其他方法?例如,要查明对象a是否是对象b的原型,请在isPrototypeOf 上调用a

a.isPrototypeOf(b)

相反,要获取对象a的原型,请使用getPrototypeOf作为参数在Object上调用a

Object.getPrototypeOf(a)

对我来说,这似乎有点违反直觉,至少乍一看 - 我希望可以从对象本身开始查询对象的特征(比如它的原型)。 (换句话说,我倾向于期望getPrototype上的Object.prototype方法被称为a.getPrototype(),而不是getPrototypeOf上的Object方法。 )

This answer做了相当不错的工作,解释了为什么你可能想要选择一个而不是另一个,但语言标准中特定决策背后的原因(参见上面的getPrototypeOf示例)并不完全清楚对我来说。但我猜必须有一个:)这是什么?

0 个答案:

没有答案