Object.assign

54 阅读1分钟
let defaultTpl = {
  top: 10,
  bottom: 20,
};

❌错误做法,因为两个 Component 最后都改了 defaultTpl

//
// Component A
export default {
  data() {
    return {
      option: Object.assign(defaultTpl, {top: 10}),
    }
  }
}


// Component B
export default {
  data() {
    return {
      option: Object.assign(defaultTpl, {top: 20}),
    }
  }
}

正确写法:

// Component A
export default {
  data() {
    return {
      option: Object.assign({}, defaultTpl, {top: 10}),
    }
  }
}


// Component B
export default {
  data() {
    return {
      option: Object.assign({}, defaultTpl, {top: 20}),
    }
  }
}