相关疑难解决方法(0)

按值复制数组

将JavaScript中的数组复制到另一个数组时:

var arr1 = ['a','b','c'];
var arr2 = arr1;
arr2.push('d');  //Now, arr1 = ['a','b','c','d']
Run Code Online (Sandbox Code Playgroud)

我意识到arr2引用相同的数组arr1,而不是一个新的独立数组.如何复制数组以获得两个独立的数组?

javascript arrays

1638
推荐指数
20
解决办法
85万
查看次数

为对象分配其他内容时,为什么不通过引用传递此对象?

我知道在JS中,对象是通过引用传递的,例如:

function test(obj) {
    obj.name = 'new name';
}

var my_obj = { name: 'foo' };
test(my_obj);
alert(my_obj.name); // new name
Run Code Online (Sandbox Code Playgroud)

但为什么下面没有工作:

function test(obj) {
    obj = {};
}

var my_obj = { name: 'foo' };
test(my_obj);
alert(my_obj.name); // foo
Run Code Online (Sandbox Code Playgroud)

我已经将对象设置为{}(空)但它仍然说foo.

任何人都可以解释这背后的逻辑吗?

javascript pass-by-reference

52
推荐指数
4
解决办法
2万
查看次数

标签 统计

javascript ×2

arrays ×1

pass-by-reference ×1