4

我正在构建一个简单的框架来处理 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)调用时创建它们?

PS:我也尝试了以下方法,但我不知道它是否有帮助:

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

1 回答 1

0

将您的声明粘贴在IIFE中:

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

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

于 2012-08-23T13:32:48.197 回答