在Javascript中,
在V8中,这似乎是正确的:
当我们调用
然而,我无法在
这里发生了什么?
Function.call()
可以在给定this
值和零个或多个参数的情况下调用Function
。
Function.call
本身就是一个函数。因此理论上,Function.call
应该与Function.call.call
相同(或类似)。在V8中,这似乎是正确的:
> Function.call === Function.call.call
true
当我们调用
Function.call()
时,我们会得到一个匿名函数。> Function.call()
[Function: anonymous]
然而,我无法在
Function.call
上调用.call()
。> Function.call.call()
TypeError: undefined is not a function
at repl:1:21
at REPLServer.defaultEval (repl.js:132:27)
at bound (domain.js:291:14)
at REPLServer.runBound [as eval] (domain.js:304:12)
at REPLServer.<anonymous> (repl.js:279:12)
at REPLServer.emit (events.js:107:17)
at REPLServer.Interface._onLine (readline.js:214:10)
at REPLServer.Interface._line (readline.js:553:8)
at REPLServer.Interface._ttyWrite (readline.js:830:14)
at ReadStream.onkeypress (readline.js:109:10)
这里发生了什么?
Function.call
显然是一个函数 - 它不像这个错误信息所暗示的那样是undefined
。
this
值,当然可以。混淆源于错误信息。 - Qix - MONICA WAS MISTREATED