console.log是常规对象吗?

时间:2012-10-26 17:07:45

标签: javascript console.log

  

可能重复:
  If Javascript has first-class functions, why doesn’t this work?

在Chrome中,以下内容会产生 Uncaught TypeError:非法调用

g = console.log;
g(1);

为什么会发生这种情况,为什么我不能像常规对象那样对待console.log

1 个答案:

答案 0 :(得分:8)

这是因为您丢失了对console的引用。你只是直接调用log,没有上下文。您可以在console的上下文中调用该函数以使其正常工作:

g.call(console, 1);

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

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

<强>参考