如果我在页面加载时调用以下函数:
addOnload(checkHeaders_m1)
addOnload(checkHeaders_m2)
addOnload(checkHeaders_m3)
addOnload(checkHeaders_m4)
addOnload(checkHeaders_m5)
我可以使用通配符为自己保存一些代码吗?就像是:
addOnload(checkHeaders_m\*)
如果我在页面加载时调用以下函数:
addOnload(checkHeaders_m1)
addOnload(checkHeaders_m2)
addOnload(checkHeaders_m3)
addOnload(checkHeaders_m4)
addOnload(checkHeaders_m5)
我可以使用通配符为自己保存一些代码吗?就像是:
addOnload(checkHeaders_m\*)
如果您的 onload 函数是全局的,那么它们将存在于window
对象上:
for (var i = 1; i < 6; i++) {
addOnload(window['checkHeaders_m' + i]);
}
或者,制作其他对象的函数属性,以免污染全局命名空间:
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]);
}
好吧,您总是可以使用数组。但是您仍然必须进行多个函数调用 - 至少使用数组您可以编写循环而不是手动键入这些调用。
是什么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
当然,其他命名空间可能在哪里
或者
[checkHeaders_m1,checkHeaders_m2,checkHeaders_m3,checkHeaders_m4,checkHeaders_m5]
.map(function(ch){addOnload(ch);return ch;});