Javascript中的倒圆括号

时间:2014-03-20 17:05:21

标签: javascript node.js

Javascript是什么让我在这样的函数调用中使用倒置/后向括号?我在CLI上的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结果匹配吗?

1 个答案:

答案 0 :(得分:23)

控制台可能会将所有内容包装在eval语句中:实际上是什么 评估可能是eval(a)()。在这种情况下,Chrome也会返回42。