javascript - 链接到函数

标签 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) 调用时创建它们?

PS:我也试过下面的方法,不知道有没有用:

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

最佳答案

将您的声明粘贴在 IIFE 中:

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

In JavaScript, every function, when invoked, creates a new execution context. ... In many cases, you won’t need multiple “instances” of whatever your makeWhatever function returns, and can make do with just a single instance

关于javascript - 链接到函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12092723/

相关文章:

javascript - 在动画 Google 条形图标签中使用数组索引/变量

javascript - 使用 google.script.run 从 html 调用库函数

javascript - 元素上的原型(prototype)设置样式

javascript - 使用 React Context 和 useReducer 防止重新渲染待办事项应用程序中未更改的项目

javascript - BootstrapValidator 验证具有相同名称的多个文本字段

javascript - Bootstrap 3 : Hidding carousel controls on first and last items not working

javascript - 再次关于 javascript 中的 async/await

javascript - ios 10 自动对焦不对焦输入

javascript - 在javascript中显示页面名称?

javascript - 在不同的列中显示 JSON 结果 Angular JS