我们可以用Object.prototype.toString.call(foo)
检测对象类(foo 的类型),并且效果很好。
但为什么Object.toString.call({})
throw TypeError: Function.prototype.toString is not generic
?
Doesn't Object.toString
继承自Object.prototype
?
Object.toString 不是继承自 Object.prototype
否。内置Object构造函数是一个 Function (像所有本机构造函数一样),因此它继承自函数原型(即其私有[[Prototype]]
属性参考函数原型) 位于其自身之前原型财产。
其原型链为:
Object[[Prototype]] -> Function.prototype -> Object.prototype -> null
so 函数.prototype.toString masks 对象.prototype.toString.
一些琐事:请注意,虽然函数原型是一个函数,它不是从自身继承而是从对象.原型.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)