Javascript: atribuir objeto à variável [duplicado]

Sep 15 2020

Tenho um objeto existente com algumas propriedades:

var props = {
  filters: {
    brightness: 0,
    opacity: 1,
  }
}

Portanto, desejo atribuir filterpropriedades deste objeto a outro objeto durante a declaração da variável:

var sprite = {
  configs: {
    image: 'pic.png',
    // <- assign `props.filters` right here
  }
}

Como resultado, quero obter esse objeto:

{
  configs: {
    image: 'pic.png',
    brightness: 0,
    opacity: 1,
  }
}

Posso fazer isso logo após a spritedeclaração da variável como este:

Object.assign(sprite.configs, props.filters);

Mas é possível atribuir propriedades de outro objeto durante a declaração de variável?

Seria muito conveniente no caso de haver muitos e muitos adereços em um objeto e o JS permitiria implementar tal atribuição durante a declaração da variável para eliminar o pós-processamento redundante.

Respostas

4 Reyno Sep 15 2020 at 15:33

Você pode usar o operador spread para "espalhar" os valores dos adereços dentro da variável sprite.

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

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

console.log(sprite);