{}())和{})之间有什么区别()

时间:2016-10-09 03:51:16

标签: javascript

对于这个可怕的头衔感到抱歉,一旦人们给我一些指示,我可以为将来更好地编辑它。

我主要想知道

之间有什么区别
(function() {
   return false; // logs false
}());

and

(function() {
   return false; // Also returns false
})();

是,他们似乎都在控制台中给我相同的结果,但我确定必须有区别,有人可以告诉我差异以及为什么你会使用其中一个?

3 个答案:

答案 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

<强>为什么吗 因为括号的原因是区分函数表达式和函数声明,所以当解析器已经期望表达式时,可以删除它们。

在进行赋值时,使用它们编码约定状态是个好主意。