在node.js中克隆对象的最佳方法是什么
例如,我想避免以下情况:
var obj1 = {x: 5, y:5};
var obj2 = obj1;
obj2.x = 6;
console.log(obj1.x); // logs 6
该对象很可能包含复杂的类型作为属性,因此简单的for(var1 in obj1)无法解决。我需要自己编写一个递归克隆吗,还是内置了一些我看不到的东西?
在node.js中克隆对象的最佳方法是什么
例如,我想避免以下情况:
var obj1 = {x: 5, y:5};
var obj2 = obj1;
obj2.x = 6;
console.log(obj1.x); // logs 6
该对象很可能包含复杂的类型作为属性,因此简单的for(var1 in obj1)无法解决。我需要自己编写一个递归克隆吗,还是内置了一些我看不到的东西?
您可以从JQuery使用扩展功能:
var newClone= jQuery.extend({}, oldObject);
var deepClone = jQuery.extend(true, {}, oldObject);
也有一个Node.js插件:
https://github.com/shimondoodkin/nodejs-clone-extend
要在没有JQuery或插件的情况下进行阅读,请在此处阅读:
我很惊讶Object.assign
没有被提及。
let cloned = Object.assign({}, source);
如果可用(例如Babel),则可以使用对象传播运算符:
let cloned = { ... source };
这将定义您可以使用的扩展方法。代码来自本文。