Object.assign:对象属性复制,浅拷贝
Object.assign = Object.assign || function(){
if(arguments.length == 0) throw new TypeError('Cannot convert undefined or null to object');
let target = arguments[0],
args = Array.prototype.slice.call(arguments, 1),
key
args.forEach(function(item){
for(key in item){
item.hasOwnProperty(key) && ( target[key] = item[key] )
}
})
return target}
使用Object.assign可以浅克隆一个对象:
let clone = Object.assign({}, target)
简单的深克隆可以使用JSON.parse()和JSON.stringify(),这两个api是解析json数据的,所以只能解析除symbol外的原始类型及数组和对象
let clone = JSON.parse( JSON.stringify(target) )