JSON.parse(JSON.stringify(x)) Purpose?

javascript, json

Solution

It's a way of cloning an object, so that you get a complete copy that is unique but has the same properties as the cloned object.

var defaultParams = { a : 'b' };
var params = JSON.parse(JSON.stringify(defaultParams));

console.log( params.a ); // b
console.log( defaultParams.a ); // b
console.log( params === defaultParams ); // false

The above outputs `false` because even though both objects have the `a` property, with the value `b`, there are different objects that are independent of each other (they don't refer to the same reference).

The JSON method will only work with basic properties - no functions or methods.

Problem

While I was working on a project, I came across this snippet of code: ``` var params = JSON.parse(JSON.stringify(defaultParams)); ``` Does this code actually do anything?

Original source

Related problems