这两种代码有什么区别? 为什么第一个比第二个更有利?
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");}
}
};
最佳答案
第一个是立即调用函数,返回一个对象,第二个是一个对象。
函数可以具有可由其内部所有函数访问的变量,并且这些变量不能从函数外部访问。因此,您可以保留与第一个版本的模块相关的私有(private)变量。
<小时/>也就是说,现在我会选择 ES 模块:
const privateVariable = "whatever";
export function someMethod() { /*...*/ }
关于javascript - 两种代码的区别——模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57451111/