Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么jQuery.extend()比Lodash.clone()快_Javascript_Jquery_Lodash - Fatal编程技术网

Javascript 为什么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选项会导致合并,而不是复制,这意味着对象不会被过度覆盖,而是将其属性复制到 有

对于嵌套级别高达For的非常大的JSON对象,在深度克隆对象时,jQuery.extend()似乎比lodash clone方法快得多。这两种方法有什么不同,是什么导致了差异?

jQuery.extend
没有深度克隆。它只是将属性从源对象复制到目标对象中。如果属性是对象引用,它们也会被复制。这被称为浅拷贝

如果检查每个对象,它可能看起来像一个深度副本,但属性是对相同底层对象的引用

用于
jQuery.extend
deep
选项会导致合并,而不是复制,这意味着对象不会被过度覆盖,而是将其属性复制到

有关详细信息,请参阅
jQuery.extend
的文档:


jQuery.extend
不深度克隆。它只是将属性从源对象复制到目标对象中。如果属性是对象引用,它们也会被复制。这被称为浅拷贝

如果检查每个对象,它可能看起来像一个深度副本,但属性是对相同底层对象的引用

用于
jQuery.extend
deep
选项会导致合并,而不是复制,这意味着对象不会被过度覆盖,而是将其属性复制到

有关详细信息,请参阅
jQuery.extend
的文档:


谢谢你,布兰登。从原始数组中删除条目时,引用会发生什么情况?人们似乎仍然可以通过克隆访问数据。垃圾回收器删除数据是时间问题,还是他们会继续生存?垃圾回收器删除数据时可能会延迟,但只有在引用不存在时才能删除数据,此时数据是不可见的。复制对象引用并将其从其他位置删除不会删除该对象。现在,您对同一对象有了另一个引用。谢谢Brandon。从原始数组中删除条目时,引用会发生什么情况?人们似乎仍然可以通过克隆访问数据。垃圾回收器删除数据是时间问题,还是他们会继续生存?垃圾回收器删除数据时可能会延迟,但只有在引用不存在时才能删除数据,此时数据是不可见的。复制对象引用并将其从其他位置删除不会删除该对象。现在,您有了对同一对象的另一个引用。