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