IE9 Console.log: Availability and Functionalities
Is console.log supported in IE9?
Yes, console.log is supported in Internet Explorer 9, but its availability depends on certain conditions.
When is window.console.log defined in IE9?
The console object is only exposed in IE9 when the developer tools are enabled for a specific tab. While the console object remains accessible across pages within the same tab, opening a new tab requires enabling developer tools there too.
Why are console.log.apply and console.log.call undefined in IE9?
The console object is a non-standard extension to the DOM and is considered a host object. Host objects are not required to inherit from native ECMAScript types or functions like the apply and call methods.
While IE 9 implemented native ECMAScript inheritance for most DOM objects, it excluded the developer tools. As a result, methods of the console object do not have access to these features.
Overcoming the Undefined Call and Apply Methods
Despite these limitations, you can still use some Function.prototype methods on console methods by utilizing the bind() method. For example:
var log = Function.prototype.bind.call(console.log, console); log.apply(console, ["this", "is", "a", "test"]); // Outputs: "thisisatest" in the console
The above is the detailed content of Is console.log Supported in IE9, and How Does It Work?. For more information, please follow other related articles on the PHP Chinese website!