zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    Spring框架总结(二)
    java.lang.ClassCastException: com.liuyang.annocation.UserAction cannot be cast to com.liuyang.annocation2.UserAction at com.liuyang.annocation2.App.test
    Spring框架总结(一)
    Error creating bean with name 'us' defined in class path resource [com/liuyang/test/DI/beans2.xml]: Cannot resolve reference to bean 'daoa' while setting bean property 'daoa'; nested exception is org.
    互联网系统架构的演进
    重新理解:ASP.NET 异步编程(转)
    Git初级使用教程(转)
    JavaScript开发规范要求
    大型网站架构演化发展历程(转)
    Bootstrap 学习(1)
  • 原文地址:https://www.cnblogs.com/jackychua/p/2995611.html
Copyright © 2011-2022 走看看