javascript - 正确使用模块模式语法?

标签 javascript

我见过两种方式...第一种对我来说最有意义。

自执行括号直接放在函数括号之后。 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/

相关文章:

javascript - 日期选择器限制当前年份

javascript - jquery iframe beforeunload 控件

asp.net - 如何切换脚本标签的可见性?

javascript Date().getTime() 不是函数

javascript - AngularJS:使用 element.bind ('input' 访问自定义指令内的事件)

javascript - 红帽 OpenShift : cannot build/deploy node app because "Output image could not be resolved"

javascript - 当我使用公共(public)文件夹 Symfony 4 时,我的 css 和 js 文件没有加载

javascript - 如何使用 Leaflet 从 MapBox 上现有的 Tileset 获取几何图形(点)?

javascript - JSON 解析 -> stringify -> 解析损坏?

javascript - 使用 cocos 2d js 和 Chipmunk 创建动态主体