您的位置:首页 > Web前端 > JavaScript

Javascript中对象深拷贝的应用

2017-05-01 19:54 267 查看

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息