4

可能重复:
如果 Javascript 具有一流的功能,为什么这不起作用?

在 Chrome 中,以下会产生Uncaught TypeError: Illegal invocation

g = console.log;
g(1);

为什么会发生这种情况,为什么我不能console.log像对待普通对象一样对待?

4

1 回答 1

8

发生这种情况是因为您丢失了对console. 你只是log直接打电话,没有上下文。您可以在 的上下文中调用该函数console以使其工作:

g.call(console, 1);

或者,为了避免每次都这样做,您可以将函数绑定回console对象:

var g = console.log.bind(console);

参考资料

于 2012-10-26T17:09:47.523 回答