lodash中的_.clone(obj, true)等价于_.cloneDeep(obj) 两个方法,lodash花了大量的代码来实现 ES6 引入的大量新的标准对象.javascript
var obj = { a: {a: "hello"}, b: 33 }; var newObj = _.cloneDeep(obj); console.log(newObj) // { a: {a: "hello"}, b: 33 }
var obj = { a: {a: "hello"}, b: 33 }; var newObj =_.clone(obj, true); console.log(newObj) //{ a: {a: "hello"}, b: 33 }
JSON.parse(JSON.stringify(obj))是最简单粗暴的深拷贝,可以处理JSON格式的全部数据类型,可是对于正则表达式类型、函数类型等没法进行深拷贝.java
无论这个对象原来是什么,在深拷贝以后都会变成Object正则表达式
var obj = { a: {a: "hello"}, b: 33 }; var newObj = JSON.parse(JSON.stringify(obj)); console.log(newObj); //{ a: {a: "hello"}, b: 33 }