我有点难以确定最佳实现方式。
我想要一个模块,它具有一个构造函数,该函数接受一个参数并将其存储以供稍后在模块内使用。
var ModuleB = function(moduleA) {
this.moduleA = moduleA;
}
ModuleB.prototype = function() {
//private stuff/functions
function someMethod() {
moduleA.doSomething();
}
//public api
return {
someMethod : someMethod
};
}();
在一些其他的文件中
//ModuleA defined elsewhere
var moduleA = new ModuleA();
//...
var module = new ModuleB(moduleA);
module.someMethod();
现在在someMethod
上面,moduleA是未定义的,而this
是全局窗口对象。 有人能解释一下我如何访问moduleA吗? 我不明白在构造函数之后this.moduleA = moduleA;
发生了什么。如果我在这里使用了错误的模式或其他内容,请随时参与。
moduleA
是全局变量,所以才能使小提琴起作用。 - jbabey