在对象中使用javascript模块

时间:2018-05-16 13:58:32

标签: javascript design-patterns dependency-injection global

我问了一个问题:

想象一下,我有一个javascript模块(使用显示模块模式),我想在一个对象的一些原型方法中使用它。你认为最好的方法是什么? 我目前有两个想法: - 将全局模块传递给对象的构造函数并将其保存在对象属性中(this.myModule ...) - 直接使用原型方法中的模块作为全局变量

让我用一个小例子向你解释一下情况:

我有包含模块的file1.js:

var myModule = (function(){ 
    function doSomething(){...} 
    return {doSomething: doSomething};
})()

要使用此模块,哪两个选项最适合您?或者你可能有更好的选择吗? 我不能使用requirejs或任何库来简化我的应用程序的模块化和依赖管理。此外,我无法改变现有架构。



// Option 1
function myObject(myModule){
  ...
  this._myModule = myModule;
}

myObject.prototype.doAnotherThing = function(){
  ...
  this._myModule.doSomething();
}
var test = new myObject(myModule);

// Option 2
function myObject(){
  ...
}

myObject.prototype.doAnotherThing = function(){
  ...
  myModule.doSomething();
}
var test = new myObject();




我对你的观点非常感兴趣。

提前多多感谢,

雷米

0 个答案:

没有答案