Javascript 两种类型代码之间的差异-模块
这两种代码之间有什么区别? 为什么第一个比第二个好Javascript 两种类型代码之间的差异-模块,javascript,module,Javascript,Module,这两种代码之间有什么区别? 为什么第一个比第二个好 let mod1 = (function () { return { isCuteMixin: function(obj) { obj.isCute = _ => true; }, singMixin: function(obj){ obj.sing = _ => {console.log("Singing to an awesome tune");}
let mod1 = (function () {
return {
isCuteMixin: function(obj) {
obj.isCute = _ => true;
},
singMixin: function(obj){
obj.sing = _ => {console.log("Singing to an awesome tune");}
}
}
})();
let mod2 = {
isCuteMixin: function(obj) {
obj.isCute = _ => true;
},
singMixin: function(obj){
obj.sing = _ => {console.log("Singing to an awesome tune");}
}
};
第一个是立即调用的函数,返回一个对象,第二个是对象 函数中的所有函数都可以访问变量,而这些变量不能从函数外部访问。因此,您可以在第一个版本中保留与模块相关的私有变量
也就是说,现在我会选择ES模块:
const privateVariable = "whatever";
export function someMethod() { /*...*/ }
这是第一种方法的唯一优点吗?