首页 > 解决方案 > Assigning one array to another javascript

问题描述

So array in javascript are assigned by references so for example

let a = [1,2,3];

let b = a;

a = [];

console.log(b);

Shouldn't it print empty array as a is assigned to empty array and b and a are point to same.

标签: javascriptarraysreferencecopy

解决方案


我知道这种行为可能看起来很奇怪。然而,正如其他作者已经提到的那样,发生的情况是,通过编写 'a = []' 你实际上为'a' 分配了一个新的引用(即你不再操作'old' 数组),并且'b' 将持有对最初分配“旧”数组并破坏与“a”的关系的内存位置的旧引用。因此,现在将存在 2 个引用而不是最初的 1 个。


推荐阅读