8

当我分配console.log给 node.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需要thisto be的值console。如果要将其存储在变量中,则必须绑定以下值this

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

Node.js console does console.log = console.log.bind(this) in constructor.

于 2013-11-10T10:37:34.143 回答