js中clone一个对象
貌似这个简单的操作会有无数种不同的方法.
- 使用Object.assign
var clone = Object.assign({}, obj);
这个方法貌似是新的js中支持的, 会有兼容性问题. 那么还有其他方法:
- y = _.clone(x);
这个是用的underscore库.
y = JSON.parse(JSON.stringify(x))
var bill = $.extend(true, {}, bob);
这是用的jquery库.
- 使用Object.create,但这并非真正的clone,而是继承.
y = Object.create(x);
- 其他
其他方法中最重要的就是自己写一个function, 去iterate key并且赋值.
参考:
(How do I correctly clone a JavaScript object?)[http://stackoverflow.com/questions/728360/how-do-i-correctly-clone-a-javascript-object]
(4 CREATIVE WAYS TO CLONE OBJECTS)[http://heyjavascript.com/4-creative-ways-to-clone-objects/]
(Deep copy Javascript objects)[https://webdevwonders.com/deep-copy-javascript-objects/]