为什么是Object.prototype.toString === toString?如果我把它放在全局作用域中:
var toStringValue = toString.call("foobaz");我希望toStringValue是window.toString的值,因为window是默认作用域,对吧?为什么toString本身解析为Object.prototype.toString而不是window.toString
发布于 2010-09-08 23:48:54
您将获得的结果将取决于主机环境。如果我运行以下命令:
alert(toString === window.toString);
alert(toString === Object.prototype.toString);在...on Chrome上,我得到的分别是true和false;在火狐上,我得到的是false和false。IE给了true和false ,但见下文。
浏览器上的窗口对象有点棘手,因为它是宿主对象,而且宿主对象可以做一些奇怪的事情。:-)举个例子,你的toString.call("foobaz")在IE上会失败,因为window的toString不是一个真正的JavaScript函数,没有call或者apply。(我并不是说这样做是对的,你明白……)
https://stackoverflow.com/questions/3669466
复制相似问题