JavaScript Objects Shallow cloning

Help us to keep this website almost Ad Free! It takes only 10 seconds of your time:
> Step 1: Go view our video on YouTube: EF Core Bulk Insert
> Step 2: And Like the video. BONUS: You can also share it!

Example

6

ES6's Object.assign() function can be used to copy all of the enumerable properties from an existing Object instance to a new one.

const existing = { a: 1, b: 2, c: 3 };

const clone = Object.assign({}, existing);

This includes Symbol properties in addition to String ones.

Object rest/spread destructuring which is currently a stage 3 proposal provides an even simpler way to create shallow clones of Object instances:

const existing = { a: 1, b: 2, c: 3 };

const { ...clone } = existing;

If you need to support older versions of JavaScript, the most-compatible way to clone an Object is by manually iterating over its properties and filtering out inherited ones using .hasOwnProperty().

var existing = { a: 1, b: 2, c: 3 };

var clone = {};
for (var prop in existing) {
  if (existing.hasOwnProperty(prop)) {
    clone[prop] = existing[prop];
  }
}


Got any JavaScript Question?