65 lines
2.7 KiB
Markdown
65 lines
2.7 KiB
Markdown
|
---
|
|||
|
title: Object Assign
|
|||
|
localeTitle: Atribuir Objeto
|
|||
|
---
|
|||
|
## Atribuir Objeto
|
|||
|
|
|||
|
Este é um esboço. [Ajude nossa comunidade a expandi-lo](https://github.com/freecodecamp/guides/tree/master/src/pages/javascript/standard-objects/object/object-assign/index.md) .
|
|||
|
|
|||
|
[Este guia de estilo rápido ajudará a garantir que sua solicitação de recebimento seja aceita](https://github.com/freecodecamp/guides/blob/master/README.md) .
|
|||
|
|
|||
|
O método `Object.assign()` é usado para 1) adicionar propriedades e valores a um objeto existente, 2) criar uma nova cópia de um objeto existente ou 3) combinar vários objetos existentes em um único objeto. O método `Object.assign()` requer um targetObject como parâmetro e pode aceitar um número ilimitado de sourceObjects como parâmetros adicionais.
|
|||
|
|
|||
|
Importante notar aqui é que o parâmetro targetObject sempre será modificado. Se esse parâmetro apontar para um objeto existente, esse objeto será modificado e copiado. Se, no entanto, você deseja criar uma cópia de um objeto sem modificar esse objeto original, pode passar um objeto vazio `{}` como o primeiro parâmetro (ou targetObject) e o objeto a ser copiado como o segundo parâmetro (ou sourceObject).
|
|||
|
|
|||
|
Se os objetos passados como parâmetros em `Object.assign()` compartilharem as mesmas propriedades (ou chaves), os valores de propriedade que vierem depois na lista de parâmetros sobrescreverão aqueles que vieram antes.
|
|||
|
|
|||
|
**Sintaxe**
|
|||
|
|
|||
|
```javascript
|
|||
|
Object.assign(targetObject, ...sourceObject)
|
|||
|
```
|
|||
|
|
|||
|
**Valor de retorno**
|
|||
|
|
|||
|
`Object.assign()` retorna o targetObject.
|
|||
|
|
|||
|
**Exemplos**
|
|||
|
|
|||
|
_Modificando e copiando targetObject_
|
|||
|
|
|||
|
```javascript
|
|||
|
let obj = {name: 'Dave', age: 30};
|
|||
|
|
|||
|
let objCopy = Object.assign(obj, {coder: true});
|
|||
|
|
|||
|
console.log(obj); // returns { name: 'Dave', age: 30, coder: true }
|
|||
|
console.log(objCopy); // returns { name: 'Dave', age: 30, coder: true }
|
|||
|
```
|
|||
|
|
|||
|
_Copiando targetObject sem modificação_
|
|||
|
|
|||
|
```javascript
|
|||
|
let obj = {name: 'Dave', age: 30};
|
|||
|
|
|||
|
let objCopy = Object.assign({}, obj, {coder: true});
|
|||
|
|
|||
|
console.log(obj); // returns { name: 'Dave', age: 30 }
|
|||
|
console.log(objCopy); // returns { name: 'Dave', age: 30, coder: true }
|
|||
|
```
|
|||
|
|
|||
|
_Objetos com as mesmas propriedades_
|
|||
|
|
|||
|
```javascript
|
|||
|
let obj = {name: 'Dave', age: 30, favoriteColor: 'blue'};
|
|||
|
|
|||
|
let objCopy = Object.assign({}, obj, {coder: true, favoriteColor: 'red'});
|
|||
|
|
|||
|
console.log(obj); // returns { name: 'Dave', age: 30, favoriteColor: 'blue' }
|
|||
|
console.log(objCopy); // { name: 'Dave', age: 30, favoriteColor: 'red', coder: true }
|
|||
|
```
|
|||
|
|
|||
|
#### Mais Informações:
|
|||
|
|
|||
|
[MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
|
|||
|
[Introdução ao Object.assign no ES6 (Video)](https://youtu.be/vM7Tif98Dlo)
|