web-dev-qa-db-ja.com

TypeError:console.log.applyでの不正な呼び出し

chromeコンソールでこれを実行する場合:

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

Chromeはエラーを返します:

// TypeError: Illegal Invocation

どうして? (Chrome 15 OSX経由でテスト済み)

128
Jacksonkr

実行コンテキストがコンソールから他のオブジェクトに変更された場合、機能しない場合があります。

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

179