我见过两种方式...第一种对我来说最有意义。
自执行括号直接放在函数括号之后。 All 包含在括号之间,使其成为函数表达式。引用 here
( function () {
// ... all vars and functions are in this scope only
// still maintains access to all globals
} () );
和这种风格,其中自执行括号放在创建函数表达式的括号之后。引用 here
var Var = ( function ( window, undefined )
{
} )();
我不确定 var 是否对语法产生影响...?
最佳答案
您问题的答案在关于 immediate functions 的链接中在我的第一条评论中。本质上,如果您只想要一个立即函数,只要函数声明本身包含在圆括号中,调用括号是跟在大括号后还是跟在圆括号后都没有关系。但是,如果您不想要包装括号,那么对 Var
的赋值就变得相关了,因为这会起作用:
var Var = function () {
// do stuff; return stuff;
}();
但这不会:
function () {
// do stuff;
}();
因为它只是一个函数声明,后面跟着一对意外的括号(语法错误)。
关于javascript - 正确使用模块模式语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10668335/