小编典典

(function(){…}())之间是否有区别?和(function(){…})();?

javascript

有时我看到:

(function() { ... }());

有时我看到:

(function() { ... })();

两种形式之间有区别吗?是否有令人信服的理由使用一种形式而不是另一种形式?


阅读 296

收藏
2020-05-01

共1个答案

小编典典

这两种形式没有实际的区别,但是从_语法的_角度来看,两者之间的区别是第一个示例a中将包含分组运算符(括号)CallExpression,其中包括FunctionExpression

           CallExpression
            |         |
   FunctionExpression |
            |         |
            V         V
(function() {       }());
^                      ^
|--PrimaryExpression --|

在第二个示例中,我们首先拥有一个整数CallExpression,其中包含FunctionExpression

      PrimaryExpression
            |
     FunctionExpression
            |
            V
(function() {       })();
^                      ^
|--  CallExpression  --|
2020-05-01