Object.assign()可以接收多个参数,第一个参数是目标对象,后面的都是源对象,assign方法将多个原对象的属性和方法都合并到了目标对象上面,如果在这个过程中出现同名的属性(方法),后合并的属性(方法)会覆盖之前的同名属性(方法)
Object.assign1=function(target,...args){
if(target==null){
throw new TypeError('Cannot convert undefined or null to object')
}
let res=Object(target)
args.forEach(item=>{
if(item!=null){
for(let key in item){
if(item.hasOwnProperty(key)){
res[key]=item[key]
}
}
}
})
return res
}
const obj=Object.assign1({name:'1'},{age:18},{sex:20},{name:'2'})
console.log(obj)