我有一个像下面的模块
'use strict';
var val = GlobalVariable.someMethod();
...
...
module.exports = myExportedClass;
我用
require('./myModule');
称呼它。但是想知道GlobalVariable
是否可以动态注入。我试过这种方法,尽管我知道这不起作用:)
(function(GlobalVariable) {
require('./myModule');
})(SomeOtherGlobalVariable);
因此它没有,因为模块将在不同的范围内执行。还有其他任何方法可以在使用require时传递我自己的GlobalVariable版本。
最佳答案
是的,可以注射。执行以下操作:
module.exports = function(injectedObject) {
return {
doSomething: function() {
return injectedObject.something();
}
}
};