ページの読み込み時に次の関数を呼び出す場合:
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;});