1.slice()  不带任何参数的时候,默认返回一个长度和原数组相同的新数组

let a = [1,2,3,5]
let b = a.slice();

2.concat() 链接一个新数组,相当于concat([])

let c = a.concat();

3.手写

function copy(obj){
	var newO = [];
	for(let keys in obj){
		newO.push(obj[keys])
	}
	return newO;
}
let d = copy(a);

4.JSON格式转换法 ——深拷贝

function deepCopy(obj){
  return JSON.parse(JSON.stringify(obj));
}

5.手写深拷贝

function deepCopy(obj){
	var newObj = Array.isArray(obj)?[]:{}
	for(let keys in obj){
		if(obj.hasOwnProperty(keys)){
			newObj[keys] = typeof obj[keys]==='object' ? deepCopy(obj[keys]) : obj[keys]
		} 
	}
	return newObj; 
}