【发布时间】:2021-07-03 22:41:31
【问题描述】:
我知道这听起来有点愚蠢,但我有点卡在这里。
let a={
name:'Pete',
};
let b=a;
更改 a 的属性。
a.name='Cindy';
b; //{name: "Cindy"}, b follows a exactly.
为 a 添加属性。
a.age=20;
b; //{name: "Cindy", age: 20}, b still follows a.
这就是问题所在,现在 b 不跟随 a...它现在具有不同的值。为什么..?
a={};
b; // {name: "Cindy", age: 20}. b is different from a.
【问题讨论】:
-
因为你再次将
a初始化为一个空对象 -
Object 保存了引用的内存空间,所以
a.name = 'Cindy'和age = '20' saving in the same memory. but when you declarea = {}` 基本上就是一个make new address 的意思。所以 b 不会跟随新地址,除非你再次声明 b = a
标签: javascript