js对象的复制,传递,新增,删除和比较

当我们把一个某个对象拷贝或者传递给某个函数时,往往传递的是该对象的引用。

因此我们在引用上做的任何改动,都将会影响到它所引用的原对象。 

复制,拷贝 

 var o = { add: 'Changdao'};

 var oBox = o; 

oBox.add;//Changdao;

oBox.add='Lijiang';

o.add;//Lijiang; 

 传递

var o = { add: 'Changdao'};

var xinObj = function(key) { key.add = 'Xichang' };

xinObj(o) ;

o.add;//Xichang; 

新增,删除

 var o = { add: 'Changdao'};

o.father='TomG';

o.morther= 'HanMM';

delete o.add;

o.add;//undefined; 

比较 

 当且仅当,两个对象指向同一个对象引用时,返回true;

 即使碰巧两个对象拥有相同的属性和值也不行;

 var objA = { address:'Panpei'},objB ={address:'Panpei'};

objA===objB;//false;

var oBox = objA;

oBox= objA;//true 

 oBox.address="Kongdali";

 objA.address;//Kongdali;

错误的定义方式var oBox = objB && objA; 如果对象是如此定义的话,虽然可能不报错,但如果两个对象都存在的情况下,一般得到的值为第二个的,所以这样写没有意义,容易出bug

原文地址:https://www.cnblogs.com/Aladingding/p/4600564.html