对于这个可怕的头衔感到抱歉,一旦人们给我一些指示,我可以为将来更好地编辑它。
我主要想知道
之间有什么区别(function() {
return false; // logs false
}());
and
(function() {
return false; // Also returns false
})();
是,他们似乎都在控制台中给我相同的结果,但我确定必须有区别,有人可以告诉我差异以及为什么你会使用其中一个?
答案 0 :(得分:3)
与其他答案一样,没有功能差异
但是,如果你进入ES2015,并使用箭头功能样式IIFE
(() => {
return false; // logs false
})();
可以使用此版本:
(() => {
return false; // logs false
}());
在括号中没有 - js引擎抱怨丢失)
答案 1 :(得分:1)
没有区别 - 只是在Javascript中编写IIFE(立即调用函数表达式)的两种不同方式。无论您选择哪种,都可以选择惯例。
(如果您在Javascript中需要有关IIFE的更多信息,那么SO here会很棒。)
答案 2 :(得分:0)
以下两种模式中的任何一种都可以用于IIFE使用函数的执行上下文来创建"隐私。"
Software
<强>为什么吗 因为括号的原因是区分函数表达式和函数声明,所以当解析器已经期望表达式时,可以删除它们。
在进行赋值时,使用它们编码约定状态是个好主意。