按引用设置的数组/按值设置的数组

Array set by reference/set by value

本文关键字:数组 设置 引用      更新时间:2023-09-26

注意:我假设这个问题之前已经被问过一百万次,但我不知道要搜索什么。这个问题很简单。javascript中的数组似乎是通过引用设置的。如何按值设置它。意思是,即使我清空数组 a,我也希望数组 b 是 a 的副本,即我希望alert(b)提醒['1','2','3']

var a = ['1','2','3'];
var b = [];
b = a;
a.length = 0;
alert(b);

这是一个JSFIDDLE http://jsfiddle.net/e5mQM/

是的,设置 a = b; 将使两个变量指向同一个数组/对象,因此您必须复制数组而不仅仅是引用它:

b = a.slice();

JavaScript slice()方法返回一个基于给定参数切片的新数组,如果在没有参数的情况下调用,它将返回整个数组的新浅拷贝。