这可能是一个老问题,但我真的很好奇通过引用复制对象的性质作为javascript中的赋值.
意思是如果
var a = {};
var b = a;
a.name = "Renato";
console.log(b);
Object {name: "renato"}
Run Code Online (Sandbox Code Playgroud)
我是javascript的新手,这引起了我的注意,有一个浅拷贝作为对象赋值的默认值.我搜索了一下,为了创建一个硬拷贝,你必须创建一个mixin.我想知道为什么这被选为默认值,因为它的转换似乎非常隐含.谢谢!
Jos*_*eam 22
对象和数组被视为对同一对象的引用.如果要克隆对象,有几种方法可以执行此操作.
在以后的浏览器中,您可以:
var b = Object.assign({}, a);
Run Code Online (Sandbox Code Playgroud)
如果你想去图书馆,lodash提供_.clone(和_.cloneDeep):
var b = _.clone(a);
Run Code Online (Sandbox Code Playgroud)
如果您不想执行这些方法中的任何一个,则只需枚举每个键和值,并将它们分配给新对象.
通常,在通过多个函数等时将它们视为引用是有价值的.对于像数字和字符串这样的原语来说不是这种情况,因为在大多数情况下这会感觉非常违反直觉.
| 归档时间: |
|
| 查看次数: |
15852 次 |
| 最近记录: |