TypeError: незаконный вызов на console.log.apply

Если вы запустите это в консоли хром:

console.log.apply(null, [array])

Chrome возвращает ошибку:

// TypeError: Illegal Invocation

Почему? (Протестировано на Chrome 15 через OSX)

Ответ 1

Возможно, он не работает в случаях, когда контекст выполнения изменился с консоли на любой другой объект:

Это ожидается, потому что console.info ожидает ссылку на "this" на консоль, а не окно.

console.info("stuff")
stuff
undefined
console.info.call(this, "stuff")
TypeError: Illegal invocation
console.info.call(console, "stuff")
stuff
undefined

Ожидается такое поведение.

https://bugs.chromium.org/p/chromium/issues/detail?id=48662