ES5 模块模式使用
ES5 Module pattern usage
你能给我解释一下这两种方法有什么区别吗(FirstModule 和 SecondModule:
var MyModule = (function () {
return {
method: function () {
console.log("MyModule:method");
}
}
})();
var FirstModule = (function () {
return {
test: function () {
MyModule.method();
}
}
})();
var SecondModule = (function (myMethod) {
return {
test: function () {
myMethod.method();
}
}
})(MyModule);
在这两种情况下我们都有相同的对象,它不是副本。我将不胜感激任何好的信息、任何方法的优点和缺点。
第一种方法使用 MyModule
变量,在分配 FirstModule
值后,它可以被模块外的其他代码覆盖。
第二个使用 myMethod
变量,它不能(尽管分配给 myMethod
的对象的 properties 仍然可以,因为该对象仍然通过 MyModule
变量全局可用。
你能给我解释一下这两种方法有什么区别吗(FirstModule 和 SecondModule:
var MyModule = (function () {
return {
method: function () {
console.log("MyModule:method");
}
}
})();
var FirstModule = (function () {
return {
test: function () {
MyModule.method();
}
}
})();
var SecondModule = (function (myMethod) {
return {
test: function () {
myMethod.method();
}
}
})(MyModule);
在这两种情况下我们都有相同的对象,它不是副本。我将不胜感激任何好的信息、任何方法的优点和缺点。
第一种方法使用 MyModule
变量,在分配 FirstModule
值后,它可以被模块外的其他代码覆盖。
第二个使用 myMethod
变量,它不能(尽管分配给 myMethod
的对象的 properties 仍然可以,因为该对象仍然通过 MyModule
变量全局可用。