Jeremy Belolo Jeremy Belolo - 1 year ago 59
Javascript Question

Don't change the main object when adding a variable to it in JavaScript

I need to use a variable globally declared, but modify it for the use of a function:

var example = {
selected: '0',
list: {
1: {
value: '1',
name: "example 1"
2: {
value: '2',
name: "example 2"
3: {
value: '3',
name: "example 3"

window.load(function () {
var example2 = example; = "newinfo";
// Use example 2

The problem is, after that, if I console.log(example), it contains the "info" variable, absolutely unwanted. I don't even see why it would have it, I purposely defined a new variable to avoid this.

Answer Source

The single assignment keeps the reference to the original object. So any changes are reflected to the original object.

Just use JSON.stringify and JSON.parse for a copy.

var example2 = JSON.parse(JSON.stringify(example));
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download