当我们把一个某个对象拷贝或者传递给某个函数时,往往传递的是该对象的引用。
因此我们在引用上做的任何改动,都将会影响到它所引用的原对象。
复制,拷贝
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
时间: 2024-10-25 09:20:10