对上一个问题的困惑感到抱歉。我一直在寻找一种快速的方法来获取和更新存储在闭包函数中的数百个数组值。由于相信闭包更快,我一直远离使用对象,我听说这甚至可能不是真的。我没有通过 onclick 传递变量。这两个功能的性能是我所关心的。我只是想更新一个数组索引,更新后返回数组值,返回原始数组,返回一个空数组。
<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 中的值表示数组值、数组索引和要执行的操作。(抱歉有任何混淆)。