JavaScript深度复制(deep clone)的实现方法
谈到代码复用的时候,很有可能想到的是代码的继承性,但重要的是要记住其最终目标――我们要复用代码。继承性只是实现代码复用的一种手段,而不是唯一的方法。这种模式中,对象将从另外一个在对象中获取成员,其方法是仅需将其复制即可。用过jQuery的都知道,它有一个$.extend()方法,它的用途除了扩展第三方插件之外,还可以用来复制属性的。下面我们用上面的extend()方法来测试一下:我们发现,extend()方法已经可以正常工作了。这是因为在使用浅复制的时候,由于对象是通过引用传递的,即kid.counts和dad.counts指向的是同一个数组。下面,让我们修改extend()函数以实现深度复制。然后,递归调用extendDeep函数。
下载地址
用户评论