【发布时间】:2026-02-17 00:30:01
【问题描述】:
在 JavaScript 中两个模块声明有什么区别? 一个在函数周围有括号,另一个没有?
一篇文章这么说
注意匿名函数周围的 ()。这是要求 语言,因为以记号函数开头的语句是 总是被认为是函数声明。包括 () 创建一个 而是函数表达式。
检查时两者似乎都做同样的事情。
var person = (function () {
// Private
var name = "Robert";
return {
getName: function() {
return name;
},
setName: function(newName) {
name = newName;
}
};
}());
var person = function () {
// Private
var name = "Robert";
return {
getName: function() {
return name;
},
setName: function(newName) {
name = newName;
}
};
}();
【问题讨论】:
-
function declarations 都不是,都是函数表达式。
-
没有区别。
-
通常第二个需要先通过
person()实例化,但您的运行时环境中可能存在错误。
标签: javascript module iife