我正在学习Javascript中的模块模式,并且遇到了这两种创建模块的方法:
var Module = (function () {
// code
})();
var Module = (function () {
// code
}());
这两种方法有显着差异吗?如果没有,这被认为是更好的做法?感谢。
答案 0 :(得分:0)
两者都是一样的。外圆括号强制将内部代码作为表达式进行求值。这意味着在两种情况下,功能代码也被视为函数表达式。然后由于()括号立即执行此函数。
因此,从JS解释器todo列表的角度来看它应该完全相同:1)获取函数表达式,2)立即执行它。
它只是从美学的角度来看 - 它看起来的方式对你来说更自然。