javascript - window.toString.call 在 IE8 中未定义

标签 javascript jquery exception internet-explorer-8 tostring

当你运行时:

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/

相关文章:

.net - 有没有办法从 Directory.EnumerateFiles 中的异常中恢复?

java - 如何查看给定方法中抛出的运行时异常?

c# - .NET 应用程序抛出哪些异常

javascript - 来自多维数组的全日历事件数据

javascript - 使用正则表达式验证给定的密码不包含字母、数字和特殊字符

jquery - 为文本添加填充

javascript - jquery.magnific-popup 在 ajax post 后生成时不起作用

javascript - iOS 中使用 javascript 预加载图像

javascript - 如何将 JavaScript 日期初始化为特定时区

javascript - 从文件夹中提取所有图像并创建 Bootstrap 轮播/幻灯片