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?
JSON. parse() takes a JSON string and transforms it into a JavaScript object. Trailing commas are not valid in JSON, so JSON. parse() throws an error if the string passed to it has trailing commas.
The JSON. parse() method parses a string and returns a JavaScript object. The string has to be written in JSON format. The JSON. parse() method can optionally transform the result with a function.
stringify()) is a bad practice to clone an object in JavaScript. Cloning of objects often become a problem to JS programmers.
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.
You can break the connection between two arrays.
For example:
const bulkAssignTreeView = JSON.stringify(this.bulkAssignTreeViewData);
this.bulkAssignTreeViewData = JSON.parse(bulkAssignTreeView);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With