Javascript:将对象分配给变量

mr.*_*ris 1 javascript variables object ecmascript-2016

我有一个具有一些属性的现有对象:

var props = {
  filters: {
    brightness: 0,
    opacity: 1,
  }
}
Run Code Online (Sandbox Code Playgroud)

因此,我想filter在变量声明期间将该对象的属性分配给另一个对象:

var sprite = {
  configs: {
    image: 'pic.png',
    // <- assign `props.filters` right here
  }
}
Run Code Online (Sandbox Code Playgroud)

结果我想得到这样的对象:

{
  configs: {
    image: 'pic.png',
    brightness: 0,
    opacity: 1,
  }
}
Run Code Online (Sandbox Code Playgroud)

sprite我可以在变量声明后这样做:

Object.assign(sprite.configs, props.filters);
Run Code Online (Sandbox Code Playgroud)

但是是否可以在变量声明期间分配另一个对象的属性?

如果一个对象中有很多属性,JS 允许在变量声明期间实现这样的赋值,以消除多余的后处理,这将非常方便。

Rey*_*yno 6

您可以使用展开运算符来“展开”精灵变量内的 props 值。

const props = {
  filters: {
    brightness: 0,
    opacity: 1,
  }
};

const sprite = {
  configs: {
    image: 'pic.png',
    ...props.filters,
  }
};

console.log(sprite);
Run Code Online (Sandbox Code Playgroud)