1

我想创建一个包装在 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;
    }

  })()
);
4

1 回答 1

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;
});
于 2013-10-17T21:10:44.980 回答