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