Javascript 为什么jQuery.extend()比Lodash.clone()快
对于嵌套级别高达For的非常大的JSON对象,在深度克隆对象时,jQuery.extend()似乎比lodash clone方法快得多。这两种方法有什么不同,是什么导致了差异?Javascript 为什么jQuery.extend()比Lodash.clone()快,javascript,jquery,lodash,Javascript,Jquery,Lodash,对于嵌套级别高达For的非常大的JSON对象,在深度克隆对象时,jQuery.extend()似乎比lodash clone方法快得多。这两种方法有什么不同,是什么导致了差异?jQuery.extend没有深度克隆。它只是将属性从源对象复制到目标对象中。如果属性是对象引用,它们也会被复制。这被称为浅拷贝 如果检查每个对象,它可能看起来像一个深度副本,但属性是对相同底层对象的引用 用于jQuery.extend的deep选项会导致合并,而不是复制,这意味着对象不会被过度覆盖,而是将其属性复制到 有
jQuery.extend
没有深度克隆。它只是将属性从源对象复制到目标对象中。如果属性是对象引用,它们也会被复制。这被称为浅拷贝
如果检查每个对象,它可能看起来像一个深度副本,但属性是对相同底层对象的引用
用于jQuery.extend
的deep
选项会导致合并,而不是复制,这意味着对象不会被过度覆盖,而是将其属性复制到
有关详细信息,请参阅jQuery.extend
的文档:
jQuery.extend
不深度克隆。它只是将属性从源对象复制到目标对象中。如果属性是对象引用,它们也会被复制。这被称为浅拷贝
如果检查每个对象,它可能看起来像一个深度副本,但属性是对相同底层对象的引用
用于jQuery.extend
的deep
选项会导致合并,而不是复制,这意味着对象不会被过度覆盖,而是将其属性复制到
有关详细信息,请参阅jQuery.extend
的文档:
谢谢你,布兰登。从原始数组中删除条目时,引用会发生什么情况?人们似乎仍然可以通过克隆访问数据。垃圾回收器删除数据是时间问题,还是他们会继续生存?垃圾回收器删除数据时可能会延迟,但只有在引用不存在时才能删除数据,此时数据是不可见的。复制对象引用并将其从其他位置删除不会删除该对象。现在,您对同一对象有了另一个引用。谢谢Brandon。从原始数组中删除条目时,引用会发生什么情况?人们似乎仍然可以通过克隆访问数据。垃圾回收器删除数据是时间问题,还是他们会继续生存?垃圾回收器删除数据时可能会延迟,但只有在引用不存在时才能删除数据,此时数据是不可见的。复制对象引用并将其从其他位置删除不会删除该对象。现在,您有了对同一对象的另一个引用。