revision:
The Object.assign() static method copies all enumerable own properties from one or more source objects to a target object. It returns the modified target object.
Object.assign(target, ...sources)
Parameters:
target : required. The target object — what to apply the sources' properties to, which is returned after it is modified.
source : the source object(s) — objects containing the properties you want to apply.
const target = { a: 1, b: 2 }; const source = { b: 4, c: 5 }; const returnedTarget = Object.assign(target, source); console.log(target); // Expected output: Object { a: 1, b: 4, c: 5 } console.log(returnedTarget === target); // Expected output: true
// Create Target Object const person1 = { firstName: "John", lastName: "Doe", age: 50, eyeColor: "blue"}; // Create Source Object const person2 = {firstName: "Anne",lastName: "Smith"}; // Assign Source to Target Object.assign(person1, person2); // Display Target let text = Object.entries(person1); document.getElementById("demo").innerHTML = text; //result: firstName,Anne,lastName,Smith,age,50,eyeColor,blue
// Creating 3 object constructors and assigning values to it let obj1 = { a: 10, b: 10, c: 10 }; let obj2 = { b: 20, c: 20 }; let obj3 = { c: 30 }; // Creating a target object and copying values and // properties to it using object.assign() method let new_obj = Object.assign({}, obj1, obj2, obj3); // Displaying the target object console.log(new_obj);
example: cloning an object
<div> <p id="assign-1"></p> <p id="assign-2"></p> </div> <script> const obj = { a: 1 }; document.getElementById("assign-1").innerHTML = "object : " + JSON.stringify(obj); const copy = Object.assign({}, obj); console.log(copy); // { a: 1 } document.getElementById("assign-2").innerHTML = "object copy: " + JSON.stringify(copy); </script>
example: copy an object
<div> <p id="assign-3"></p> <p id="assign-4"></p> <p id="assign-5"></p> <p id="assign-6"></p> <p id="assign-7"></p> </div> <script> const object1 = { a: 1, b: 2, c: 3 }; const object3= { g: 1, h: 2, i: 3 }; const object2 = Object.assign({c: 4, d: 5}, object1); const object4 = Object.assign({g: 34, h: 25}, object3); console.log(object2.c, object2.d); console.log(object4.g, object4.h); document.getElementById("assign-3").innerHTML = "object2.c: " + (object2.c); document.getElementById("assign-4").innerHTML = "object2.d: " + (object2.d); document.getElementById("assign-5").innerHTML = "object4.g: " + (object4.g); document.getElementById("assign-6").innerHTML = "object4.h: " + (object4.h); </script>