对于一个非常大的JSON对象,最多嵌套级别,在深度克隆对象时,jQuery.extend()似乎比lodash clone方法快得多。这两种方法如何相互不同,是什么导致了这种差异呢?
答案 0 :(得分:4)
jQuery.extend
没有深度克隆。它只是将源对象中的属性复制到目标对象中。如果属性是对象引用,它们也会被复制。这被称为浅拷贝。
如果检查每个对象,它可能看起来像一个深层副本,但属性是对相同底层对象的引用。
deep
的{{1}}选项会导致合并,而不是副本,这意味着对象不会被覆盖,但会复制其属性。
有关详细信息,请参阅jQuery.extend
的文档: