【发布时间】:2014-09-03 22:06:19
【问题描述】:
对于嵌套级别高达 for 的非常大的 JSON 对象,在深度克隆对象时,jQuery.extend() 似乎比 lodash clone 方法快得多。这两种方法有何不同,是什么导致了差异?
【问题讨论】:
标签: javascript jquery lodash
对于嵌套级别高达 for 的非常大的 JSON 对象,在深度克隆对象时,jQuery.extend() 似乎比 lodash clone 方法快得多。这两种方法有何不同,是什么导致了差异?
【问题讨论】:
标签: javascript jquery lodash
jQuery.extend 不进行深度克隆。它只是将属性从源对象复制到目标对象。如果属性是对象引用,它们也会被复制。这称为浅拷贝。
如果您检查每个对象,它可能看起来像一个深层副本,但属性是对相同底层对象的引用。
jQuery.extend 的 deep 选项会导致合并,而不是复制,这意味着对象不会被覆盖,而是会将其属性复制到其中。
有关详细信息,请参阅jQuery.extend 的文档:
【讨论】: