Javascript中对象深拷贝的应用

javascript中的对象的深拷贝

关于Javascript的对象的深浅拷贝网上有很多的说明文档。
详见:js深拷贝和浅拷贝

下面说明下我遇到的业务场景,由于框架的限制,在每次打开模态页面的时候,框架会自动将我赋予模态页面的对象的属性改变,而框架对于属性的名称是严格要求的。

 var checkBoxObj = {
     'text':'aaa',
     'value': '1'
 }
 (对象一)
 改变后:
 var checkBoxObj = {
     'name':'aaa',
     'value':'1'
 }
 (对象二)

这样第一次模态页面的打开是正常的,但是第二次打开后就会造成,对象属性就会不识别。框架仍然希望我传进来的是(对象一)这种形式,
但是第一次模态页面的打开已经造成了对象属性名称的改变,所以造成原来对象的丢失。所以采用对象的深拷贝解决这个问题。每次传给模态页面的是一个拷贝的对象,这样就保留了原来的对象。
以下是拷贝代码部分:

/**
 * 对象的拷贝。
 * 入参:原对象,作为副本不变。
 */
cloneFun:function (obj){  
    function Clone(){}  
    Clone.prototype = obj;  
    var o = new Clone();  
    for(var a in o){  
        if(typeof o[a] == "object") {  
            o[a] = cloneFun(o[a]);  
        }  
    }  
    return o;  
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值