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