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中文網其他相關文章!