将一个数组分配给另一个javascript

将一个数组分配给另一个javascript,javascript,arrays,reference,copy,Javascript,Arrays,Reference,Copy,所以javascript中的数组是通过引用分配的,例如 let a = [1,2,3]; let b = a; a = []; console.log(b); 它不应该打印空数组吗?因为a被分配给空数组,而b和a指向同一个数组。我知道这样的行为可能看起来很奇怪。但是,正如其他作者已经提到的,通过编写“a=[]”,您实际上为“a”分配了一个新引用(即,您不再操作“旧”数组),而“b”将保留对最初分配“旧”数组的内存位置的旧引用,并断开与“a”的关系。因此,现在将存在2个引用,而不是最初的1

所以javascript中的数组是通过引用分配的,例如

let a = [1,2,3];

let b = a;

a = [];

console.log(b);

它不应该打印空数组吗?因为a被分配给空数组,而b和a指向同一个数组。

我知道这样的行为可能看起来很奇怪。但是,正如其他作者已经提到的,通过编写“a=[]”,您实际上为“a”分配了一个新引用(即,您不再操作“旧”数组),而“b”将保留对最初分配“旧”数组的内存位置的旧引用,并断开与“a”的关系。因此,现在将存在2个引用,而不是最初的1。

no.
a
现在有一个新的对象引用。a和b都指向一个内存,您正在对另一个进行引用。这不会改变b