Javascript-指定空对象的效果

Javascript-指定空对象的效果,javascript,object,ecmascript-5,Javascript,Object,Ecmascript 5,JavaScript学习者-请帮助理解 在下面的JS代码段中,当一个“昵称”属性被添加到object person1时,它也会反映在Person对象中 但是,当person1设置为空对象{}时,请帮助理解为什么它不影响person对象 提前谢谢 在下面的JS代码段中,当向对象添加“昵称”属性时 person1,它也反映在Person对象中 您确实需要person1=person所以,现在两个变量都指向同一个内存地址,所以一个变量的变化也会反映在另一个变量中 但是,当person1设置为空对象{

JavaScript学习者-请帮助理解

在下面的JS代码段中,当一个“昵称”属性被添加到object person1时,它也会反映在Person对象中

但是,当person1设置为空对象{}时,请帮助理解为什么它不影响person对象


提前谢谢

在下面的JS代码段中,当向对象添加“昵称”属性时 person1,它也反映在Person对象中

您确实需要
person1=person
所以,现在两个变量都指向同一个内存地址,所以一个变量的变化也会反映在另一个变量中

但是,当person1设置为空对象{}时,请提供帮助 理解它为什么不影响人和对象


通过执行
person1={}
,您正在为其分配一个新的内存地址,因此
person
person1
现在是两个不同的实体,更改一个实体不会影响另一个。

对象
基本上是在将其分配给另一个变量时引用的。因此,当您影响一个存储在变量中的
对象时,它也会影响另一个变量,因为两者共享相同的引用


当您用另一个值替换引用时,旧的引用将被切断,新的
对象
和新的内存引用将被存储。

你好,谢谢您的时间!能够解释上面关于{}分配新内存地址的解释,但是,将null或undefined分配给Person1也不会影响Person对象-有什么提示为什么?
var person  = {
  "firstname" : "Tony",
  "lastname" : "Stark"
};

var person1 = person;

person1.nickname = "Ironman";

console.log(person); 
//Object { firstname: "Tony", lastname: "Stark", nickname: "Ironman" }
console.log(person1);
//Object { firstname: "Tony", lastname: "Stark", nickname: "Ironman" }  

person1 = {};

console.log(person);
//Object { firstname: "Tony", lastname: "Stark", nickname: "Ironman" }  
console.log(person1);
//Object {  }