Javascript为什么可以在函数调用中使用反向括号,比如这样的形式?我正在CLI上运行Node控制台,具体是Node版本0.10.25。
function a(){ return 42 }
a() // -> 42
a)( // -> 42. WTF?
function b(t){ return t }
b(4) // -> 4
b)4( // No function evaluation; presumably dangling parentheses
b)(4 // -> 4. WTF?
补充说明:这似乎在Chrome 33.0.1750.152、Safari 7.0.2或Firefox 27.01中无法正常工作。这实际上是ECMAScript某种解释的“特性”还是Node的特殊之处?如果Node使用V8,那么它不应该与Chrome的结果匹配吗?
Unexpected token )
错误,而在 IE 11 中则是Expected ';'
。 - Cᴏʀʏ(b)(4)
? - gen_Eric()
中进行评估,因此它变成了(b)(4)
。 - cookie monster