В Internet Explorer 9 (и 8) объект console
отображается только тогда, когда инструменты разработчика открыты для определенной вкладки. Если вы закроете окно инструментов разработчика для этой вкладки, объект console
останется открытым для каждой страницы, на которую вы переходите. Если вы открываете новую вкладку, вы также должны открыть инструменты разработчика для этой вкладки, чтобы объект console
был открыт.
Объект console
не является частью какого-либо стандарта и является расширением объектной модели документа. Как и другие объекты DOM, он считается хост-объектом и не обязан наследовать от Object
, а его методы от Function
, как это делают нативные функции и объекты ECMAScript. По этой причине apply
и call
не определены в этих методах. В IE 9 большинство объектов DOM были улучшены для наследования от собственных типов ECMAScript. Поскольку инструменты разработчика считаются расширением IE (хотя и встроенным расширением), они явно не получили тех же улучшений, что и остальная часть DOM.
Что бы это ни стоило, вы все равно можете использовать некоторые Function.prototype
методы для console
методов с небольшим количеством bind()
magic:
var log = Function.prototype.bind.call(console.log, console);
log.apply(console, ["this", "is", "a", "test"]);
//-> "thisisatest"