编程语言
首页 > 编程语言> > 如何将对象传播到JavaScript中的类属性中

如何将对象传播到JavaScript中的类属性中

作者:互联网

基本上这就是我想要完成的事情.

class Person {
  constructor (obj) {
    this.first = ''
    this.last = ''
    this.age = ''

    if (obj) {
      Object.assign(this, ...obj)
    }
  }
}

const a = new Person()
console.log('Not spreading: ', a)

const b = new Person({ first: 'Alex', last: 'Cory', age: 27 })
console.log('Spreading: ', b)

有没有办法传播这样的对象来填充一个类?

解决方法:

如果您使用的是Object.assign,则不使用扩展表示法;只需删除…:

class Person {
  constructor (obj) {
    this.first = ''
    this.last = ''
    this.age = ''

    if (obj) {
      Object.assign(this, obj)     // <============ No ...
    }
  }
}

const a = new Person()
console.log('Not spreading: ', a)

const b = new Person({ first: 'Alex', last: 'Cory', age: 27 })
console.log('Spreading: ', b)

有一个proposal(目前处于第3阶段,很可能在ES2018中,并且受到转发器广泛支持),它在对象初始化器中对象属性传播,但这不适用于对象已存在的情况.

标签:javascript,class,spread-syntax
来源: https://codeday.me/bug/20190716/1474303.html