var obj1 = {};
var obj2 = {};
var copyObj1 = obj1;
var copyObj2 = obj2;
copyObj1 = {
name :'abc'
};
copyObj2.name = 'xyz';
console.log("obj1",obj1); // obj1 {}
console.log("obj2",obj2); // obj2 { name: 'xyz' }
console.log("copyObj1",copyObj1); // copyObj1 { name: 'abc' }
console.log("copyObj2",copyObj2); // copyObj2 { name: 'xyz' }
尽管
obj1
是copyObj1
的引用,为什么copyObj1
的值与obj1
不同?如果我们用
{name:'abc'}
和obj1.name ='abc'
赋值,有什么区别? 最佳答案
1)尽管copyObj1是obj1的引用,为什么obj1的值与copyObj1不同?
答:-
您正在将obj1的引用存储到copyObj1中。
copyObj1 = {
name: 'abc'
};
创建一个copy1的新对象,并且现在对obj1的引用也丢失了。
2)如果我们通过{name:'abc'}和obj1.name ='abc'赋值,会有什么区别?
回答:-
两者之间的区别在于
a = {name: 'abc'} or a = {};
您正在创建一个新对象,并且该对象的所有先前引用现在都已丢失并且正在执行
a.name = 'abc';
只是更改对象的属性值。
关于javascript - 向JavaScript对象分配属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38742872/