框架:如何在核心框架中重用功能?本例中的javascript

框架:如何在核心框架中重用功能?本例中的javascript,javascript,frameworks,Javascript,Frameworks,在js框架中有一个小问题:我想在框架内外重用代码,但它会变得复杂 当您想要添加任何Klass或helper函数时,都是这样做的 TStore.add({ path: 'isArray', uses: ['inArray', 'someThingElse'], fn: function(l /*lib reference*/, u /* uses reference */){ return function(array, item){

在js框架中有一个小问题:我想在框架内外重用代码,但它会变得复杂

当您想要添加任何Klass或helper函数时,都是这样做的

 TStore.add({
      path: 'isArray',
      uses: ['inArray', 'someThingElse'],
      fn: function(l /*lib reference*/, u /* uses reference */){
           return function(array, item){
                /* stuff that calculates the array */
                return true; /* or false */
           }
      }
 })
现在的问题是,当您在TStore.add(…)上调用该方法时,该函数将使用上述函数的“inArray”;我希望重用这些代码,而不是再次编写同样的代码

编辑: TStore.add方法说明

 TStore.add = function(o){
      (...)
      // here I need to use the "inArray" function
      // but I haven't it yet!
      // ex:
      var uses = o.uses;
      if(this('isArray', uses)){
           // do something
           // but "isArray" is not available before
           // I don't add it like this: TStore.add({...})
           // like the 1º script, above
      }
 }

我认为很多软件(低级)发现了这个问题,并且已经解决了,但是我找不到一个稳定的解决方案。

在定义之前,似乎可以通过添加额外的逻辑层来解决这个问题
t存储.添加

我确信我理解你的问题。你能再详细一点或者说得更清楚一点吗?更新,检查一下。更容易理解吗?你在使用哪个框架?我正在创建一个框架,所以还不知道,但这是较低的一层:我可以怎么做?我可能不理解你的问题。像require.js这样的行为是否满足了您试图构建的内容?不。我试图构建的内容类似于yui、gwt、dojo,因为它们都没有我需要的内容。这是一个UI应用程序框架+库。请尝试绘制函数的依赖关系。您的逻辑中可能有一个循环引用,您需要修复它。依赖关系图可以帮助您确定注册函数的顺序“TStore.add”需要“isArray”,但为了能够使用“isArray”,必须将“TStore.add”函数与“TStore.add”函数一起添加。