【问题标题】:Assigning one array to another javascript将一个数组分配给另一个 javascript
【发布时间】:2020-03-14 19:19:44
【问题描述】:

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

let a = [1,2,3];

let b = a;

a = [];

console.log(b);

它不应该打印空数组,因为 a 分配给空数组并且 b 和 a 指向相同。

【问题讨论】:

  • 没有。 a 现在有一个新的对象引用。
  • a 和 b 都指向一个内存,而您正在引用另一个内存。不会改变 b

标签: javascript arrays reference copy


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多