【发布时间】:2015-07-10 21:54:39
【问题描述】:
为什么第一个函数不像第二个函数那样修改原始数组?
var a= [3, 4, 5];
function doesNothing(a) {
a=[1,1,1];
}
function doesSomething(a) {
a.push(6);
}
doesNothing(a);
console.log(a); // [3,4,5] not [1,1,1]
doesSomething(a);
console.log(a); //[3,4,5,6]
【问题讨论】:
-
因为在 JS 中所有的东西都是按值传递的。参数
a是一个新值。和函数外的a不一样。
标签: javascript arrays reference