我不希望foo在这个例子中改变,但是当我在函数中将它修改为数组时,它会改变参数。注意foo不会被function1改变...我猜是因为它不直接修改参数?任何帮助避免这将不胜感激。为什么我的函数在修改数组时改变参数?
var foo = [1,2,3];
bar = function1(foo);
bar = function2(foo);
bar = function3(foo);
function function1(newFoo){
newFoo = [newFoo,'a',1];
return newFoo;
} //foo after function1 = 1,2,3
function function2(newFoo){
newFoo[0] = 'a';
return newFoo;
} //foo after function2 = a,2,3
function function3(newFoo){
newFoo.push('4');
return newFoo;
} //foo after function3 = a,2,3,4