JavaScript: how Object.assign() method works

Learn what and how to use the Object.assign() method in JavaScript

Posted on April 04, 2021

The Object.assign() method is used to copy all enumerable properties of one or more sources objects to the target object. Enumerable properties are properties defined inside the object. They are not properties inherited from other objects.

The following example copies the object user properties to object person:

let person = { name: "Nathan" };
let user = { role: "Admin" };

Object.assign(person, user);
console.log(person); // { name: "Nathan", role: "Admin" }

As you can see in the example above, the property role from object user is copied to the person object.

The Object.assign() method allows you to use as many source object as you want, but only one target object. The first object passed as an argument to the assign() method will be the target object, while the rest will be the sources object:

let person = { name: "Nathan" };
let user = { role: "Admin" };

Object.assign(person, user, { age: 28 }, { job: "Web Developer" });

console.log(person); // { name: "Nathan", role: "Admin", age: 28, job: "Web Developer" }

Finally, if the target object and the source object has the same property, the property in target object will be overwritten by the property in source object. The following example shows how the name property value in person object is getting replaced by the source object:

let person = { name: "Nathan" };
let user = { name: "Jack" };

Object.assign(person, user);

console.log(person); //  { name: "Jack" }

And that’s how you can use Object.assign() method to combine two or more JavaScript objects.

Related articles:

Grab the free JavaScript book today 👍

Learn the building blocks of JavaScript programming language like data types, functions, objects, arrays and classes.

Use the knowledge from the book to build a small but solid program.

Learn more