>>0
> for(var s=0; s<ARY[i].length; s++)
から察するに、ARY[i] は配列なんだろう。
> tmpAry[i] = new Array();
> tmpAry[i] = ARY[i];
何やってんの?
記述通り解釈すれば、tmpAry[i] に新しい Array を代入した後、すぐにそれを破棄して、tmpAry[i] を配列 ARY[i] の「別名」にしている(tmpAry[i] は ARY[i] への参照、ポインタ)。そして、
> tmpAry[i][s] = space1 + tmpAry[i][s] + space2;
tmpAry[i][s] に新しい値を代入したわけだが、tmpAray[i] は ARY[i] の「別名」に過ぎないのだから、必然的に ARY[i][s] も変更される。
よく分からなければ、以下の例をじっくり考えてみれ。
var a = [ 1, 2, 3 ];
var b = a;
b.push (4);
alert (b); // 1, 2, 3, 4
alert (a); // 1, 2, 3, 4