如何缓存一个Javascript类作为需求.js依赖

How to Cache a Javascript Class to be used as a require.js Dependency?

本文关键字:需求 依赖 js Javascript 何缓存 缓存 一个      更新时间:2023-09-26

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

经过一些研究,我发现我的解决方案过于复杂。 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;
});