如果我在页面加载时调用以下函数:
addOnload(checkHeaders_m1)
addOnload(checkHeaders_m2)
addOnload(checkHeaders_m3)
addOnload(checkHeaders_m4)
addOnload(checkHeaders_m5)
我可以使用通配符保存自己的一些代码吗?类似的东西:
addOnload(checkHeaders_m\*)
答案 0 :(得分:2)
如果您的onload函数是全局的,那么它们将存在于window
对象上:
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]);
}
答案 1 :(得分:1)
嗯,你总是可以使用数组。但你仍然需要进行多个函数调用 - 至少对于一个数组你可以写一个循环而不是手动输入这些调用。
答案 2 :(得分:0)
什么是checkHeaders_m1...
?
这看起来像是阵列的理想候选者。
for(var i=0; i<checkHeaders_m.length; i++)
{
addOnload(checkHeaders_m[i]);
}
答案 3 :(得分:0)
如何使用Array.map
?
[1,2,3,4,5].map(function(a){addOnload(window['checkHeaders_m'+a]); return a;});
window
可能是某些其他名称空间
或者
[checkHeaders_m1,checkHeaders_m2,checkHeaders_m3,checkHeaders_m4,checkHeaders_m5]
.map(function(ch){addOnload(ch);return ch;});