【发布时间】:2015-10-23 17:37:05
【问题描述】:
如果 JavaScript 将函数参数作为原始对象的引用传递,为什么我不能用这个简单的函数修改原始数组?
var array1 = ["one"];
function change(array) {
var array2 = ["222"];
array = array2;
}
change(array1);
console.log(array1); // this prints ["one"] instead of ["222"]
为什么有时对象似乎是作为引用传递的,而在这种情况下它是作为副本传递的?
【问题讨论】:
-
JavaScript is always pass-by-value. 只是值可能是对对象的引用。这意味着
array1和array是完全独立的副本,它们最初引用的是同一个对象。
标签: javascript