为什么这不会警告a,b,c?
var results=[];
function test(r){
var abc = ['a','b','c'];
r=r.concat(abc);
}
test(results);
alert(results);
答案 0 :(得分:1)
原因是因为concat不会修改您正在调用它的对象。此外,r=r.concat(abc);
表示您不理解通过引用传递。当你为某个东西分配r时,你没有改变原始的,传入的值指向的东西,你正在做的就是更新函数中的变量所指向的内容。这将有效:
var results=[];
function test(r){
var abc = ['a','b','c'];
return r.concat(abc);
}
results = test(results);
alert(results);