В 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"