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 }