どうしても使わなければならない場合、どちらを使えばいいですか?
- 方法 1 では、可能なパラメーターの組み合わせごとに 1 つの関数を作成しますが、呼び出すのは簡単です。
- 方法 2 では、関数は 1 つしかありませんが、呼び出すのが難しくなります。
注: 実際のコードでは、すべてをグローバル スコープで作成するわけではありませんが、考え方は同じです。
//Method 1:
for(var key = 0 ; key < 1000 ; key++){
for(var i = 0 ; i < 1000 ; i++){
window[key + ' ' + i] = (function(key, i) { return function() { aFunction(key, i); } })(key, i)
}
}
//then I simply do
//window['223 111']();
//Method 2:
for(var key = 0 ; key < 1000 ; key++){
for(var i = 0 ; i < 1000 ; i++){
window[key + ' ' + i] = ['aFunction',key,i]
}
}
//then i need to do
//window[window['223 111'][0]](window['223 111'][1],window['223 111'][2]);