2011-03-08 54 views

回答

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); 
+0

如果我想在concat數組之後做些什麼?換句話說,我如何在不返回值的情況下更新原件?感謝您現在解釋它的意義。我理解在某種程度上通過參考,但顯然不如我應該。 – qw3n 2011-03-08 04:05:37

+0

如果你真的想,'r.push.push.apply(r,abc)'會原地改變'r'引用的對象。但這有點難看。 – ephemient 2011-03-08 04:10:53

+0

@ qw3n gald我可以幫忙。要做到這一點,你需要使用一個函數來修改傳入的變量。簽出'push()'和'splice()'。 – Melv 2011-03-08 04:11:56

相關問題