链接到一个功能

时间:2012-08-23 13:29:17

标签: javascript

我正在构建一个简单的框架来处理DOM元素。我在框架中有大约40个大功能。

框架功能是:

var $ = function(a) { /* content */ };

它的功能是:

Dev.FN = {
 /* big functions here */
};

以下是我在框架中包含函数的方法:

     if($.FN) {
       $.FN.em = em;
       return $.FN;
     }
     $.FN = { em : em };
     for(var b in Dev.FN) {
       if(Dev.FN.hasOwnProperty(b)) {
         $.FN[b] = Dev.FN[b];
       }
     }
     return $.FN;

问题:它为每个框架调用创建了40个大函数,我的意思是: 如果我打电话给$(element1)它会为它创建40个函数,那么$(element2)再次有40个大函数等等。

如何在不Dev.FN个来电的情况下创建$(element)的{​​{1}}功能?

PS:我也试过以下内容,但我不知道是否有帮助:

     for(var b in Dev.FN) {
       if(Dev.FN.hasOwnProperty(b)) {
         $.FN[b] = function() {
           return Dev.FN[b].apply(this, arguments);
         };
       }
     }

1 个答案:

答案 0 :(得分:0)

将您的声明贴在IIFE

Dev.FN = (function () {
 /* big functions here */
}) ();
  

在JavaScript中,每个函数在被调用时都会创建一个新的执行上下文。 ...在许多情况下,你不需要你的makeWhatever函数返回的多个“实例”,并且可以只使用一个实例