最後の質問で混乱して申し訳ありません。クロージャー関数に格納されている何百もの配列値を取得して更新する高速な方法を探していました。私は、クロージャがより高速であるという信念のために、オブジェクトの使用を避けてきましたが、それは真実ではないかもしれません。onclickで変数を渡していません。私が関心を持っているのは、2 つの関数のパフォーマンスだけです。私は単に配列インデックスを更新し、更新後に配列値を返し、元の配列を返し、空の配列を返そうとしています。
<script>
function ArrValues(arr){
if(arr=='ID') return ['ID1','ID2','ID3','ID4','ID5'];
if(arr=='NAM') return ['cat','dog','fish','bird','horse'];
if(arr=='COL') return ['blue','yellow','green','pink','green'];
}
function IDUfunc(value,index,action) {
var arr="ID";
var IDU=ArrValues(arr);
return function(value,index,action) {
if(action==1){}
if(action==2){IDU[index]=value;}
if(action==3){IDU=ArrValues(arr);}
if(action==4){IDU=['empty'];}
return IDU;
}
}
IDU=IDUfunc(0,0,0);
</script>
<div onclick="alert(IDU(3,3,4))">test</div>
onclick の値は、配列値、配列インデックス、および実行するアクションを表します。(混乱して申し訳ありません)。