window.toString.call在IE8中未定义

Rob*_*nik 6 javascript jquery exception tostring internet-explorer-8

当你运行:

window.toString.call("")
Run Code Online (Sandbox Code Playgroud)

一切都很好FF/CH但在IE8中你得到一个脚本错误.事实证明,window.toString.call在IE8中这是未定义的?

你也可以运行这个:

window.toString instanceof Function;
// false

alert(window.toString);
// function toString() {
//    [native code]
// }
Run Code Online (Sandbox Code Playgroud)

为什么这样以及如何解决?我开始想知道jQuery是如何工作的?

Nic*_*itz 14

window是一个主机对象,ECMAScript语言规范(第3版)不要求从本机Object对象派生主机对象.在IE(以及可能在其他一些浏览器中)主机对象不是,因此它们不支持任何本机方法或属性(尽管它们可能具有与本机方法或属性相同的方法或属性,可以访问脚本).

如果您只想获得语言实现的默认本机toString方法,那么您应该使用Object.prototype.toString.call("").