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

上一篇:《Javascript DOM编程艺术》学习笔记 第1-6章


下一篇:Selenium IDE测试创建