简洁的深层副本:
可能性2(已弃用)var obj2 = JSON.parse(JSON.stringify(obj1));
注意:
现在,Node.js文档中将该解决方案标记为不推荐使用:
从未打算在内部Node.js模块之外使用util._extend()方法。社区仍然找到并使用了它。
它已被弃用,不应在新代码中使用。Javascript通过Object.assign()具有非常相似的内置功能。
原始答案 :
对于浅表副本,请使用Node的内置
util._extend()功能。
var extend = require('util')._extend;var obj1 = {x: 5, y:5};var obj2 = extend({}, obj1);obj2.x = 6;console.log(obj1.x); // still logs 5
Node
_extend函数的源代码在这里:https
:
//github.com/joyent/node/blob/master/lib/util.js
exports._extend = function(origin, add) { // Don't do anything if add isn't an object if (!add || typeof add !== 'object') return origin; var keys = Object.keys(add); var i = keys.length; while (i--) { origin[keys[i]] = add[keys[i]]; } return origin;};
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)