码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2015-06-25 19:29:22      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

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

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

 

复制,拷贝 

 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

 

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

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!