• 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

  • 相关阅读:
    转:浅谈Linux的内存管理机制
    (转)Redis
    检测socket链接是否断开
    linux C 中的volatile使用
    LINUX 下 ipv6 socket 编程
    linux signal 列表
    Linux下异常信号
    linux signal
    转: 关于Linux常用的二进制文件分析方法
    IOI2020 题解
  • 原文地址:https://www.cnblogs.com/Aladingding/p/4600564.html
Copyright © 2020-2023  润新知