作家
登录

javascript克隆对象深度介绍

作者: 来源:www.28hudong.com 2013-03-30 00:20:29 阅读 我要评论

js一般有两种不同数据类型的值:   基本类型(包括undefined,Null,boolean,String,Number),按值传递;   引用类型(包括数组,对象),按址传递,引用类型在值传递的时候是内存中的地址。 克隆或者拷贝分为2种:   浅度克隆:基本类型为值传递,对象仍为引用传递。   深度克隆:所有元素或属性均完全克隆,并于原引用类型完全独立,即,在后面修改对象的属性的时候,原对象不会被修改。 复制代码 代码如下: function cloneObject(obj){ var o = obj.constructor === Array ? [] : {}; for(var i in obj){ if(obj.hasOwnProperty(i)){ o[i] = typeof obj[i] === "object" ? cloneObject(obj[i]) : obj[i]; } } return o; } 另:如果是一个简单的数组,元素中没有引用类型的值,可以直接用array.concat();或者array.slice(0);来深度拷贝一个数组,这样简单又高效。数组的concat()和slice()本来就会生成一个新的数组,原来的数组不会受影响。但是要注意的是你要确保被拷贝的数组中元素中没有引用类型的值。 这是另一种深度克隆的方法,很简单,很实用: 复制代码 代码如下: var s = JSON.stringify( obj ); var o = JSON.parse( s );

  推荐阅读

  jquery offset函数应用实例

  我们有时候需要实现这样一种功能:点击一个按钮,然后在按钮的下方显示一个div。当按钮位于角落时,div的位置设定就需要调整,不然,div将显示不完全。 我打算使用offset()方法实现此功能,但要先弄清楚他的功>>>详细阅读


本文标题:javascript克隆对象深度介绍

地址:http://www.17bianji.com/kaifa2/JS/22942.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)