当你运行时:
window.toString.call("")
在 FF/CH 中一切正常,但在 IE8 中出现脚本错误。进一步调查发现,window.toString.call
在 IE8 中未定义?
你也可以运行这个:
window.toString instanceof Function;
// false
alert(window.toString);
// function toString() {
// [native code]
// }
这是为什么以及如何解决它?我开始想知道 jQuery 最初是如何工作的?
最佳答案
window
是一个宿主对象,ECMAScript Language Specification (3rd edition)不需要从 native Object
对象派生宿主对象。在 IE 中(可能在其他一些浏览器中)宿主对象不支持,因此它们不支持任何 native 方法或属性(尽管它们可能具有与 native 方法或属性同名的方法或属性,这些方法或属性可访问脚本)。
如果您只想获取语言实现的默认原生 toString
方法,那么您应该使用 Object.prototype.toString.call("")
。
关于javascript - window.toString.call 在 IE8 中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1669079/