toString.call()引起的一些思考

toString作为全局方法时,挂载于window对象。作为最顶层的原型对象 Object.prototype 有着自己的 Object.prototype.toString 方法,另外,Array、String、Boolean、Function、Date等构造函数也也都部署了自己的toString方法。

为了方便下文的理解,再强调一下原型链的作用:读取对象的某个属性时,JavaScript引擎先寻找该对象本身的属性,如果找不到,就到它的原型去找,如果还是找不到,就到原型的原型去找,直到顶层原型对象 Object.prototype。如果一层一层到最顶层的还是找不到,则返回undefined。

More