是什么让我在这样的函数调用中使用反括号/反括号的 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 结果匹配吗?
最佳答案
控制台可能将所有内容都包含在 eval 语句中:实际上是什么 评估可能是 eval(a)()。在这种情况下,Chrome 也会返回 42。
关于javascript - Javascript中的反括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22540224/