0
我的JS做到这一点:的JavaScript模块创建和初始化
var MyClass ={
a: 1,
b: 2,
init: function(message){ console.log("calling c to say "+message);};
};
MyClass.init("hello");
//所有上面的代码是在js文件
我一直遍布看到IIFE模式,但恐怕我不知道看看它与上面相比有什么好处。 我有一个模块MyClass并能够调用它的方法。使用这种模式有缺点吗?
缺点是它是一个普通的对象,并且你没有封闭提供的封装。 – vlaz
请您详细说明一下吗?我理解下面的答案中发生了什么,但这与我的模块创建无关。答案只是执行一个函数和一些代码。没有创建模块或封装。你是否在我的对象中说我可以访问MyClass.a和MyClass.b等,但如果我使用一个IIFE,将能够控制它?如果我不得不将这个改写为IIFE,我该怎么做?谢谢我是js newb –
当然有封装 - 你不能到达'x'因为它在封闭内。答案并不是创建一个模块,而是因为它的目的是要显示你的解决方案缺乏,而不是因为它展示了“如何制作模块”。鉴于你声称你已经知道,再次重复它会是多余的。 – vlaz