Javascript 浅拷贝、深拷贝的实现代码
作者:
Javascript中的对像赋值与Java中是一样的,都为引用传递.就是说,在把一个对像赋值给一个变量时,那么这个变量所指向的仍就是原来对像的地址.那怎么来做呢 答案是克隆.
什么是"clone"?
在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的。在Java/javasript语言中,用简单的赋值语句是不能满足这种需求的。要满足这种需求虽然有很多途径,但实现clone()方法是其中最简单,也是最高效的手段,当然了 javascript语言中并没有此方法.
所以我特意写了两个克隆方法:一个为浅复制 ,一个为深复制.
解释:
浅复制(影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用.
深复制(深度克隆):不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的.
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的。在Java/javasript语言中,用简单的赋值语句是不能满足这种需求的。要满足这种需求虽然有很多途径,但实现clone()方法是其中最简单,也是最高效的手段,当然了 javascript语言中并没有此方法.
所以我特意写了两个克隆方法:一个为浅复制 ,一个为深复制.
解释:
浅复制(影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用.
深复制(深度克隆):不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的.
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
您可能感兴趣的文章:
- JavaScript数组深拷贝和浅拷贝的两种方法
- 浅谈JavaScript中面向对象的的深拷贝和浅拷贝
- js对象浅拷贝和深拷贝详解
- javascript对浅拷贝和深拷贝的详解
- javascript深拷贝和浅拷贝详解
- 浅析javaScript中的浅拷贝和深拷贝
- JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
- javascript深拷贝、浅拷贝和循环引用深入理解
- JavaScript深拷贝和浅拷贝概念与用法实例分析
- JavaScript实现浅拷贝与深拷贝的方法分析
- JS浅拷贝和深拷贝原理与实现方法分析
- JS中实现浅拷贝和深拷贝的代码详解
- javascript二维数组和对象的深拷贝与浅拷贝实例分析
- javascript 关于赋值、浅拷贝、深拷贝的个人理解
- JS赋值、浅拷贝和深拷贝(数组和对象的深浅拷贝)实例详解
- 详解JS深拷贝与浅拷贝
- JS对象复制(深拷贝和浅拷贝)
- js深拷贝与浅拷贝一文彻底搞懂