【发布时间】:2016-02-22 21:33:11
【问题描述】:
var array1 = [1, 2, 3, 4, 5];
// 下面的函数 1 将一个全新的值分配给一个数组,不起作用
function changeArray(array) {
array = ["A", "B", "C"];
};
// 函数 2,它只是修改数组中的一个元素,确实有效
function addArray(array) {
array.push(6);
}
**// 如果我在array1上运行函数一(changeArray)然后尝试打印array1,它保持不变。但是,运行函数 2 (addArray) 确实将另一个元素“6”添加到数组中。我错过了什么?
【问题讨论】:
-
JavaScript 是一种按值调用的语言,因此无法使
changeArray()这样的函数工作。 (为了避免“但传递一个对象!”的反对意见,这样的解决方案会导致一个函数 not 像这个。) -
您分配给本地的
array变量(参数),而不是全局变量。
标签: javascript arrays function