Javascript中对象深拷贝的应用

版权声明:有错误希望指正,谢谢! https://blog.csdn.net/wenpeng12/article/details/71069461

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;  
} 

猜你喜欢

转载自blog.csdn.net/wenpeng12/article/details/71069461