如果我调用页面加载以下功能:通过使用通配符JavaScript的通配符功能调用
addOnload(checkHeaders_m1)
addOnload(checkHeaders_m2)
addOnload(checkHeaders_m3)
addOnload(checkHeaders_m4)
addOnload(checkHeaders_m5)
我能拯救自己的一些代码?像这样:
addOnload(checkHeaders_m\*)
如果我调用页面加载以下功能:通过使用通配符JavaScript的通配符功能调用
addOnload(checkHeaders_m1)
addOnload(checkHeaders_m2)
addOnload(checkHeaders_m3)
addOnload(checkHeaders_m4)
addOnload(checkHeaders_m5)
我能拯救自己的一些代码?像这样:
addOnload(checkHeaders_m\*)
如果全球然后他们会在window
对象上存在您的onload功能:
for (var i = 1; i < 6; i++) {
addOnload(window['checkHeaders_m' + i]);
}
或者,做一些其他物体的功能属性,所以您don't pollute the global namespace:
var myObj = {
checkHeaders_m1: function() { ... },
checkHeaders_m2: function() { ... },
checkHeaders_m3: function() { ... },
checkHeaders_m4: function() { ... },
checkHeaders_m5: function() { ... }
};
for (var i = 1; i < 6; i++) {
addOnload(myObj['checkHeaders_m' + i]);
}
我在3分钟内学习了Stack,而不是在其他地方的一个小时。非常感谢。 – kjarsenal 2012-07-24 19:02:46
那么你可以随时使用数组。但是你仍然需要进行多个函数调用 - 至少在数组中你可以编写一个循环而不是手动输入这些调用。
是什么checkHeaders_m1...
? 这看起来像一个阵列的理想候选人。
for(var i=0; i<checkHeaders_m.length; i++)
{
addOnload(checkHeaders_m[i]);
}
如何使用Array.map
?
[1,2,3,4,5].map(function(a){addOnload(window['checkHeaders_m'+a]); return a;});
凡window
可能会有一些其他的命名空间ofcourse
或者
[checkHeaders_m1,checkHeaders_m2,checkHeaders_m3,checkHeaders_m4,checkHeaders_m5]
.map(function(ch){addOnload(ch);return ch;});
答案已被删除,但值得注意的是,在结构上,这可能是一个糟糕的设置,可以简化。 – Mathletics 2012-07-24 18:52:09