當(dāng)加入prototype.js后, 不再推薦用for in 循環(huán)了. 但由此帶來了問題.
比如這段代碼
<script>
var a=[];
a["a"]="aa";
a["b"]="b";
for(var o in a){
document.write(a[o]);
document.write("<br />");
}
</script>
這個時候,用for in是沒有問題的.
但當(dāng)們加入了prototype.js后,用prototype的each循環(huán)
<script src='http://images.chinaren.com/product/webim/version/2.0/js/libs/prototype.js'></script>
<script>
var a=[];
a["a"]="aa";
a["b"]="b";
$H(a).each(function(item){
document.write(a[o]);
document.write("<br />");
});
</script>
這段代碼并不會打出任何值.
問題出在哪里?
將
var a=[]
改成
var a={}
就正常了.
原理上還未知是什么原因, 可能是由于要把a設(shè)成一個對象,$H是出來的對象的屬性,而不是數(shù)組.