有时我看到:
(function() { ... }());
(function() { ... })();
两种形式之间有区别吗?是否有令人信服的理由使用一种形式而不是另一种形式?
这两种形式没有实际的区别,但是从_语法的_角度来看,两者之间的区别是第一个示例a中将包含分组运算符(括号)CallExpression,其中包括FunctionExpression:
CallExpression
FunctionExpression
CallExpression | | FunctionExpression | | | V V (function() { }()); ^ ^ |--PrimaryExpression --|
在第二个示例中,我们首先拥有一个整数CallExpression,其中包含FunctionExpression:
PrimaryExpression | FunctionExpression | V (function() { })(); ^ ^ |-- CallExpression --|