IE9 的 Console.log:可用性和功能
Internet Explorer 9 对 window.console.log 的支持是一个经常引发问题的主题。本文深入探讨了 window.console.log 可以访问的情况,并探讨了 window.console.log.apply 和 window.console.log.call 的具体不一致之处。
何时是 window.console .log 在 IE9 中定义?
在 Internet Explorer 9(和 8)中,控制台对象仅在开发人员工具打开时出现为特定选项卡激活。关闭该选项卡中的“开发人员工具”窗口将保留对后续页面的控制台对象的访问权限。但是,打开新选项卡需要手动激活开发者工具以公开控制台对象。
未定义的 window.console.log.apply 和 window.console.log.call
IE9 中的控制台对象不属于任何既定标准,被视为 DOM 的扩展。与原生 ECMAScript 函数和对象不同,控制台对象本质上并不连接到对象原型或其方法,例如 Function.apply 和 Function.call。这种区别解释了为什么 IE9 中的控制台对象函数未定义这些方法。
其他浏览器实现
在 Internet Explorer 的更高版本中,大多数 DOM 对象继承自本机 ECMAScript类型,增强其功能。然而,由于开发工具是 IE 的扩展,它们并没有从这些改进中受益,导致控制台对象函数仍然缺少 apply 和 call 方法。
在控制台对象中使用函数方法函数
虽然 window.console.log.apply 和 window.console.log.call 在 IE9 中无法直接访问,但仍然可以使用通过bind()函数的Function.prototype方法:
var log = Function.prototype.bind.call(console.log, console); log.apply(console, ["this", "is", "a", "test"]); //-> "thisisatest"
以上是window.console.log.apply和window.console.log.call是在IE9中定义的吗?的详细内容。更多信息请关注PHP中文网其他相关文章!