Hard Copy vs Shallow copy javascript
本问题已经有最佳答案,请猛点这里访问。
这可能是一个古老的问题,但我真的很好奇通过引用复制对象作为JavaScript中的赋值的性质。
意思是如果
1 2 3 4 5 | var a = {}; var b = a; a.name ="Renato"; console.log(b); Object {name:"renato"} |
我对javascript有点陌生,这确实引起了我的注意,把一个浅拷贝作为对象分配的默认值。我搜索了它,为了创建一个硬拷贝,你必须创建一个混音器。我想知道为什么选择这个作为默认值,因为它的转换看起来非常含蓄。谢谢!
对象和数组被视为对同一对象的引用。如果要克隆对象,有几种方法可以做到这一点。
在以后的浏览器中,可以执行以下操作:
1 | var b = Object.assign({}, a); |
如果你想去图书馆,罗达什提供
1 | var b = _.clone(a); |
如果您不想做这些方法中的任何一个,您可以通过枚举每个键和值并将它们分配给一个新的对象。
通常,在传递多个函数等时,将它们作为引用对待是很有价值的。对于诸如数字和字符串之类的基元来说,情况并非如此,因为在大多数情况下,这感觉非常违反直觉。