Object.assign()

Copie les propriétés d’un ou plusieurs objets vers un objet cible.

Renvoie
L’objet cible.
Modifie l’original
Oui
Sur cette page

Exemple

#
JavaScript
const defaults = { theme: 'dark', sound: true }
const saved = { sound: false }

const settings = Object.assign({}, defaults, saved)
console.log(settings)
console.log({ ...defaults, ...saved })
Console
{ theme: 'dark', sound: false }
{ theme: 'dark', sound: false }

Définition et utilisation

#

La méthode Object.assign(target, ...sources) copie les propriétés propres et énumérables des objets source dans l’objet cible, et renvoie cet objet. Pour les clés qui se répètent, les sources suivantes écrasent les précédentes.

Attention : l’objet cible est modifié. Pour créer un nouvel objet, passez un objet vide comme cible : Object.assign({}, a, b). Dans le code moderne, la syntaxe { ...a, ...b } fait la même chose.

La copie est superficielle. Les objets imbriqués ne sont pas clonés, seulement partagés. Pour une copie profonde, utilisez structuredClone().

Syntaxe

#
Syntaxe
Object.assign(target, source1, source2, …)

Paramètres

#
  • target

    objet

    L’objet dans lequel les propriétés seront copiées. Il sera modifié.
  • source1…sourceN

    objets

    Les objets depuis lesquels les propriétés sont copiées.

Plus d’exemples

#
Copie superficielle
JavaScript
const original = { name: 'Léa', stats: { level: 3 } }
const copy = Object.assign({}, original)

copy.stats.level = 10
console.log(original.stats.level)
Console
10

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • Pour fusionner des objets, on utilise aujourd’hui plus souvent la syntaxe { ...a, ...b }, qui ne mute aucun des deux.
  • Pour une copie incluant des objets imbriqués, utilisez structuredClone().

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.