我正在构建一个简单的框架来处理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);
};
}
}
答案 0 :(得分:0)
将您的声明贴在IIFE:
中Dev.FN = (function () {
/* big functions here */
}) ();
在JavaScript中,每个函数在被调用时都会创建一个新的执行上下文。 ...在许多情况下,你不需要你的makeWhatever函数返回的多个“实例”,并且可以只使用一个实例