我正在构建一个简单的框架来处理 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/