我想创建一个包含在require.js模块中的javascript类定义,只要该模块被列为另一个模块的依赖项,就会返回该模块。当类定义具有自己的依赖关系时,它会变得棘手。这是我提出的最佳方法。还有更好的方法吗?
define(
['js/myDependency']
,(function() {
var myClass = void 0;
return function(myDependency) {
if(!myClass)
{
myClass = function MyClass(color) {
this.state = 0;
this.color = color;
}
MyClass.prototype.inputSomething = function(input) {
this.state = myDependency.handleInput(input);
}
}
return myClass;
}
})()
);
答案 0 :(得分:2)
经过一些研究后,我发现我的解决方案不必要地复杂。 Require.js仅调用传递给定义一次的回调,然后将其结果返回给定义模块的后续请求。这也是一样的:
define(['js/myDependency'], function(myDependency) {
function MyClass(color) {
this.state = 0;
this.color = color;
}
MyClass.prototype.inputSomething = function(input) {
this.state = myDependency.handleInput(input);
}
return myClass;
});