Javascript中对象深拷贝的应用

来源:互联网 发布:联通数据关闭还走流量 编辑:程序博客网 时间:2024/05/17 06:03

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;  } 
0 0
原创粉丝点击