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>
  • 相关阅读:
    LeetCode15 3Sum
    LeetCode10 Regular Expression Matching
    LeetCode20 Valid Parentheses
    LeetCode21 Merge Two Sorted Lists
    LeetCode13 Roman to Integer
    LeetCode12 Integer to Roman
    LeetCode11 Container With Most Water
    LeetCode19 Remove Nth Node From End of List
    LeetCode14 Longest Common Prefix
    LeetCode9 Palindrome Number
  • 原文地址:https://www.cnblogs.com/jackychua/p/2995611.html
Copyright © 2011-2022 走看看