Javascript var cl=console.log不';行不通
我在Angular应用程序中做到了这一点:Javascript var cl=console.log不';行不通,javascript,Javascript,我在Angular应用程序中做到了这一点: var cl = console.log; cl(123); 但是,我收到了以下错误消息: Uncaught TypeError: Illegal invocation 这发生在Chrome中。它在Nodejs中工作 我很困惑。它是非法代码吗?cl仅引用log()方法log()期望控制台作为上下文,但获取窗口。要解决此问题,请将控制台绑定为上下文: var cl=console.log.bind(console); cl(“你好”)改为尝试var
var cl = console.log;
cl(123);
但是,我收到了以下错误消息:
Uncaught TypeError: Illegal invocation
这发生在Chrome中。它在Nodejs中工作
我很困惑。它是非法代码吗?
cl
仅引用log()
方法log()
期望控制台
作为上下文,但获取窗口
。要解决此问题,请将控制台
绑定为上下文:
var cl=console.log.bind(console);
cl(“你好”)代码>改为尝试var cl=console.log.bind(console)
。谢谢,但是我的代码有什么问题吗?在链接的问题中详细解释了。有许多重复项。长话短说,console.log的实现取决于运行的上下文方法。这意味着此
内部需要是控制台
对象,而不是其他对象。因此,您应该只在console
对象的上下文中运行console.log
方法。当您分配var log=console.log
时,会发生的情况是,您将函数从源代码分离,而它只是释放了上下文。@ElgsQianChen:您使用错误的this
调用它。谢谢,但是我的代码怎么了?@ElgsQianChen更新了答案谢谢。现在我明白了为什么。:)