当你运行:
window.toString.call("")
一切都很好FF / CH但在IE8中你得到一个脚本错误.事实证明,在IE8中,window.toString.call是未定义的?
你也可以运行这个:
window.toString instanceof Function; // false alert(window.toString); // function toString() { // [native code] // }
为什么这样以及如何解决?我开始想知道jQuery是如何工作的?
解决方法
@H_301_15@ window是一个宿主对象,ECMAScript Language Specification (3rd edition)不需要从本机Object对象派生宿主对象.在IE(以及可能在其他一些浏览器中)主机对象不是,因此它们不支持任何本机方法或属性(尽管它们可能具有与本机方法或属性相同的方法或属性,可以访问脚本).如果您只想获得语言实现的默认本机toString方法,那么您应该使用Object.prototype.toString.call(“”).