Internet Explorer 9 中的 Console.log:辅助功能和实现
Internet Explorer 9 引入了对 console.log 函数的支持,但其可用性取决于某些条件。
window.console.log 的可用性
仅当开发人员工具窗口时,window.console.log 函数才会在 Internet Explorer 9 中定义对于当前选项卡是活动的。这意味着:
缺少 console.log.apply 和 console.log.call
虽然 window.console.log 在 Internet Explorer 9 中定义,但其 apply 和 call 方法却没有定义。这是因为 IE9 中的控制台对象尚未完全标准化,并且被视为文档对象模型 (DOM) 的扩展。作为宿主对象,控制台对象不需要从 Object 或 Function 继承方法,这与原生 ECMAScript 对象不同。
使用 bind() 的方法调用
尽管如此如果没有 apply 和 call,仍然可以在控制台方法上使用 Function.prototype 方法。这可以使用bind()方法来实现:
var log = Function.prototype.bind.call(console.log, console); log.apply(console, ["this", "is", "a", "test"]); // outputs "thisisatest"
以上是为什么 Internet Explorer 9 中的 console.log 仅在开发人员工具打开时才可用?的详细内容。更多信息请关注PHP中文网其他相关文章!