浅拷贝:创建一个新对象,并复制原有对象的基本类型的值
1.Object.assgin(target,source)
let target = [1,2,3]
let source = []
Object.assgin(target,source)
2.扩展运算符{...targetObj} / [...targetArr]
let target = [1,2,3]
let source = [...target]
3.arr.concat()
let target = [1,2,3]
let source = target.concat()
4.arr.slice(begin,end)
let target = [1,2,3]
let source = target.slice()
注:后两者仅用于数组
手写浅拷贝函数
const shaloowClone=(target)=>{
if(typeof target === 'object' && target !== null){//判断数据类型
const cloneTarget = Array.isArray(target)?[]:{}//判断是否为数组,创建新变量
for(let prop in target){//变量原对象
if(target.hasOwnProperty(prop)){ //判断原对象是否拥有该属性
cloneTarget[prop] = target[prop] //新对象属性复制
}
}
return cloneTarget
}else{
return target
}
}