jquery 备份对象问题

在写插件的过程中,遇到这样的一个问题,就是备份对象的问题

描述:

定义两个对象,一个空对象用来备份另一对象的数据,用于初始化处理

说明:

按正常人的思维的话,备份对象就是给一个空对象赋值,用解决1的方法解决不了问题,因为备份的对象的值也会跟着改变

于是,我是想给对象赋值是不是地址赋值?

然后改成解决2的方法,解决了这个问题。

解决1:

<script type="text/javascript">
    var obj = {},isInit=false;
   
    var objFun = {
        default_:{
            color:'red',
            0,
            height:0
        },
        show_:function(setObj){
            //备份初始值
            if(!isInit){
                obj=objFun.default_;
            }
            alert('width='+obj.width+',height='+obj.height);
            objFun.default_.width=setObj.width;
            objFun.default_.height=setObj.height;
            alert('width='+obj.width+',height='+obj.height);
        }
    };
    </script>

   <button onclick="javascript:objFun.show_({20,height:30})">button1</button><br />
   <button onclick="javascript:objFun.show_({10,height:70})">button1</button><br />

解决2: 

<script type="text/javascript">
    var obj = {},isInit=false;
   
    var objFun = {
        default_:{
            color:'red',
            0,
            height:0
        },
        copy_:function(sArr,dArr){
            for(var s in sArr){
                dArr[s]=sArr[s];
            }
            return dArr;
        },
        show_:function(setObj){
            //备份初始值
            if(!isInit){
                objFun.copy_(objFun.default_,obj);
                isInit=true;
            }
            alert('width='+obj.width+',height='+obj.height);
            objFun.default_.width=setObj.width;
            objFun.default_.height=setObj.height;
            alert('width='+obj.width+',height='+obj.height);
        }
    };
    </script>
原文地址:https://www.cnblogs.com/jackychua/p/2995611.html