当Javascript
我们将函数中定义的本地数组作为参数传递给不同的函数时,它将在上游修改数组,除非数组为空
例如foo
对不同的函数说bar
var foo = function() {
var x = [9]; //Array is not empty
bar(x);
console.log("x =>",x);
};
var bar = function(x) {x[0] = 1;};
foo(); // x => [1]
的输出x => [1]
,如果数组为空并且在被调用函数中被修改,bar
它不会更新调用函数中的数组foo
var foo = function(){
var x = []; //Array is empty
bar(x);
console.log("x =>",x); };
var bar = function(x) {x = [1];};
foo(); // x => []
但是如果我们为什么使用数组推送,它如何更新中的空数组foo
?
var foo = function(){ var x = []; bar(x); console.log("x =>",x); };
var bar = function(x) {x.push(3);};
foo(); // x => [3]