在阅读“A re-introduction to JavaScript”时,我注意到函数的一些有趣之处:
如上所述提供给匿名函数的名称(或至少应该)仅可用于函数自己的范围。
在 nodejs 提示符下根据教程中的代码输入一些内容,我能够验证 node 是否与作者一致:
function add(foo, bar) {
return foo + bar;
}
add(1, 2);
得到我 3,并且:
var five = (function plus(foo, bar) {
return foo + bar;
})(2, 3);
plus(2, 3);
给我一个关于 plus 未定义的语法错误。
我有点困惑,因为我用来定义这两个函数的代码是相同的(名称除外)。JavaScript 如何知道第一个是常规函数而第二个是命名匿名函数?