8

console.lognode.js で変数に代入すると正常に動作しますが、

var l = console.log
l(1) # outputs 1

しかし、Chromium 30 の開発ツールで同じことをすると、

var l = console.log
l(1) # TypeError: Illegal invocation

Chromium の開発ツールで機能しないのはなぜですか? なぜ私は得ているのですか、

TypeError: 不正な呼び出し

4

2 に答える 2

6

この要件が設定されている正確な理由はわかりませんが、Chromeconsole.logでは の値が である必要があると思いthisますconsole。変数に格納する場合は、次の値をバインドする必要がありますthis

var l = console.log.bind(console);
于 2013-11-10T07:51:50.443 に答える
4

Node.js コンソールはconsole.log = console.log.bind(this)コンストラクターで行います。

于 2013-11-10T10:37:34.143 に答える