log = console.log,抛出非法调用错误

时间:2015-08-07 15:51:33

标签: javascript browser

我有一个javascript文件,它将console.log简写为

var log = console.log
log("this message is logged with shortened keyword")

在运行时,它会抛出错误,

Uncaught TypeError: Illegal invocation

Jsfiddle ---- https://jsfiddle.net/w42vp7zg/

1 个答案:

答案 0 :(得分:7)

当您致电console.log时,功能log将收到console作为this值。

当您直接致电log时,this值将在严格模式下为undefined,或在非严格模式下为全局对象。

要解决此问题,您可以使用bind绑定console作为this的{​​{1}}值:

log