【发布时间】:2014-03-29 06:37:54
【问题描述】:
我正在尝试测试我的数组的深层克隆是否与原始对象相同(可用 jQuery)。
这是我克隆它的方法
self.slides = jQuery.extend(true, {}, parent.modules[self.moduleId].composed);
但是,我最终得到了两个稍微不同的对象,所以即使我关心的实际内容是相同的,这两个对象也不是。如果我将它们转储到 chrome 控制台中,它们的外观是这样的:
原始对象:
[Object]
0: Object
length: 1
__proto__: Array[0]
克隆:
Object {0: Object}
0: Object
__proto__: Object
所以克隆看起来实际上是一个对象(或对象类型的对象),而原始对象似乎是一个数组(或数组类型的对象)。
是否有其他克隆方式或如何执行此相同测试?
【问题讨论】:
-
Array是Object的一个类型,如果克隆算法不知道要创建一个新的Array,它将“退回”到创建一个通用的Object。此外,您是
extending,这与制作克隆有点不同。
标签: javascript arrays object clone