javascript 浅拷贝和深拷贝什么时候比较

When does javascript shallow copy vs. deep copy

我已经查看堆栈溢出答案一段时间了,但一直无法找到以下问题的明确、不矛盾的答案。 Javascript 浅拷贝和深拷贝什么时候比较?我已经看过流行的答案,在这种情况下有 400 answers/comments 并且每个人似乎都在争论它。如果您确定知道答案并且是专家,请帮助我们全力以赴。如果您在 Internet 上有一个 link 可以全面解释这一点,但我找不到,那也会有很大的帮助。非常感谢!

通常 JavaScript 根本不制作副本。分配变量、传递参数或返回值不会复制,它们只是 assign/pass 引用。

有一些内置函数可以用来制作副本,例如Array.prototype.slice() and Object.assign()。这些只会制作浅拷贝。

我认为没有任何标准的 JavaScript 函数可以进行深拷贝。但是,jQuery、lodash 和 underscore.js 等库中的函数可以执行此操作。例如,jQuery.extend() 类似于 Object.assign(),但它有一个可选的 deep 参数,指示它应该执行深度复制。

https://www.freecodecamp.org/news/copying-stuff-in-javascript-how-to-differentiate-between-deep-and-shallow-copies-b6d8c1ef09cd/

大家好。这是这个问题的答案。谢谢!