var arr1 = [1,2,3,4,5,6]
var arr2 = arr1.slice()
var arr1 = [{name:‘jeny‘},2,3,4]
var arr2 = [].concat(arr1)
arr1[1].name = ‘laowang‘
console.log(arr1) // [{name:‘laowang‘,2,3,4}]
console.log(arr2) // [{name:‘laowang‘,2,3,4}]
++当对象中只有一级属性,没有二级属性的时候,此方法为深拷贝,但是对象中有对象的时候,此方法,在二级属性以后就是浅拷贝++
const a = {
name:‘name1‘,
age:‘age1‘
}
const b = {
name:‘name1‘,
age:‘age1‘
}
const c = Object.assign(c,a,b)
const obj = {
name:‘name1‘,
age:‘age1‘
}
const {name} = {...obj}
console.log(name) // name1
function deepClone(obj) {
let _obj = JSON.stringify(obj);
let objClone = JSON.parse(_obj);
return objClone;
}
function _deepClone(source) {
let target;
if (typeof source === ‘object‘) {
target = Array.isArray(source) ? [] : {}
for (let key in source) {
if (source.hasOwnProperty(key)) {
if (typeof source[key] !== ‘object‘) {
target[key] = source[key]
} else {
target[key] = _deepClone(source[key])
}
}
}
} else {
target = source
}
return target
}
let $ = require(‘jquery‘);
let obj1 = {
a: 1,
b: {
f: {
g: 1
}
},
c: [1, 2, 3]
};
let obj2 = $.extend(true, {}, obj1);
let _ = require(‘lodash‘);
let obj1 = {
a: 1,
b: { f: { g: 1 } },
c: [1, 2, 3]
};
let obj2 = _.cloneDeep(obj1);
原文:https://www.cnblogs.com/nanhuaqiushui/p/14403976.html