可能重复:
在javascript中按值复制数组
我有一个有趣的 javascript 问题。我复制一个数组变量以仅对副本进行修改,然后拼接副本以删除一个元素。但是原始数组变量受拼接影响 - 就好像副本是“通过引用复制”:
window.onload = function() {
var initial_variable = ['first', 'second', 'third'];
var copy_initial_variable = initial_variable;
copy_initial_variable.splice(0, 1);
alert('initial variable - ' + initial_variable);
};
//output: initial variable - second,third
首先,这是 javascript 的故意行为还是错误?
其次,我怎样才能制作一个数组的副本并删除副本中的一个元素而不是原始元素?
让我认为上面可能是一个 javascript 错误的一件事是,这种行为只发生在数组而不是整数。例如:
window.onload = function() {
var initial_variable = 1;
var copy_initial_variable = initial_variable;
copy_initial_variable = 2;
alert('initial variable - ' + initial_variable);
};
//output: initial variable - 1
如果行为是一致的,那么这应该输出2
,因为分配可能是通过引用?