Skip to content
Related Articles
Open in App
Not now

Related Articles

How to clone a JavaScript object ?

Improve Article
Save Article
  • Last Updated : 03 Jan, 2023
Improve Article
Save Article

Cloning a JavaScript object is a task that is used mostly because we do not want to create the same object if the same object already exists. There are a few ways.

  • By iterating through each property and copying them to the new object.
  • Using JSON method as the source object MUST be JSON-safe. So it needs exception handling to keep it safe in the case which source object can not be convertible to JSON.
  • object.assign : This method does only a shallow copy. It means that nested properties are still copied by reference.

Let’s see them one by one with the help of Examples. 

Example 1: The one is to iterate through the source object’s properties and copy all of them one by one to the target object. It is quite simple but not used very often. 

html




<h1 style="color:green;">
    GeeksforGeeks
</h1>
<p id="demo2">sourceObject = {a:1, b:2, c:3};</p>
<button onClick="fun()">click
</button>
<p id="demo"></p>
<script>
    function fun(){
    const sourceObject = {a:1, b:2, c:3};
    let tO = {};
        for (let prop in sourceObject) {
        if (sourceObject.hasOwnProperty(prop)) {
            tO[prop] = sourceObject[prop];
        }
        }
    document.getElementById("demo").innerHTML =
        "targetObject a = "+tO.a+", b = " + tO.b+", c = "+tO.c;
    }
</script>

Output:

clone a JavaScript object

Example 2:This example uses JSON. Using this method, source object MUST be JSON safe.

HTML




<h1 style="color:green;">
    GeeksforGeeks
</h1>
<p id="demo2">sourceObject = {a:1, b:2, c:3};</p>
<button onClick="fun()">click
</button>
<p id="demo"></p>
<script>
    function fun(){
    const sourceObject = {a:1, b:2, c:3};
    let tO = {};
    tO = JSON.parse(JSON.stringify(sourceObject));
    document.getElementById("demo").innerHTML =
    "targetObject a = "+tO.a+", b = " + tO.b+", c = "+tO.c;
    }
</script>

Output:

clone a JavaScript object

Example 3:This method uses the Object.assign method.
 

Javascript




<h1 style="color:green;">
    GeeksforGeeks
</h1>
<p id="demo2">sourceObject = {a:1, b:2, c:3};</p>
<button onClick="fun()">click
</button>
<p id="demo"></p>
  
<script>
    function fun(){
    const sourceObject = {a:1, b:2, c:3};
    let tO = {};
    tO = Object.assign({}, sourceObject);
    document.getElementById("demo").innerHTML =
        "targetObject a = "+tO.a+", b = " + tO.b+", c = "+tO.c;
    }
</script>

Output:

clone a JavaScript object


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!