【发布时间】:2012-03-07 06:52:56
【问题描述】:
我在使用下一个代码时遇到问题:
test1 = [0,0];
function func(test)
{
var test2 = new Array();
for(var i = 0; i < test.length; i++)
if(test[i] == 0)
{
test[i] = 1;
test2.push(test);
test[i] = 0;
}
return test2;
}
a = func(test1);
document.write(a[0].toString()+"<br/>");
document.write(a[1].toString());
输出是:
0,0
0,0
我已经用控制台检查过:当我在条件内更改 test[i] 时,在 test2.push(test) 之后,test2[test2.length] 也发生了变化。 (为什么?)
是否存在范围问题? 我应该怎么做才能得到这样的输出?
1,0
0,1
谢谢。
【问题讨论】:
-
a = func(test); //what is test here?? -
Upsss... 已更正。它是 test1。
标签: javascript arrays scope copy