ECMAScript -11: Object assign

const source1 = {
  a: 123,
  b: 123
}
const source2 = {
  a: 789,
  b: 789
}
const target = {
  a: 456,
  c: 456
}
// 用后面对象的属性覆盖第一个对象,从左向右执行
// target, source1 = > {a:123,b:123,c:456}
// {a: 123, b:123, c:456 } + source2 => {a: 789, c:456, b: 789}
var result = Object.assign(target, source1, source2)

console.info(target) // >>> { a: 789, c: 456, b: 789 }
console.info(target === result) // true

function func(obj) {
  const funcObj = Object.assign({}, obj)
  funcObj.name = 'func obj'
  console.info(funcObj) // >>> { name: 'func obj' }
}
const obj = { name: 'global obj' }
func(obj)
console.info(obj) // >>> { name: 'global obj' }
posted @ 2020-08-18 15:59  荣光无限  阅读(75)  评论(0)    收藏  举报