Skip to content Skip to sidebar Skip to footer

Javascript: Store Object As Fixed Value?

I've noticed this behavior when writing my JavaScript, and I haven't been able to figure out why: Below is some code to reproduce the behavior in question. var o1 = { num: 1 } v

Solution 1:

Because both variables referencethe same object. Objects are not cloned/copied on variable assignment. You would have to do this yourself.

JavaScript behaves the same way like any (most) other OO languages in this case.

Solution 2:

By writing var o2 = o1; you're making o1 and o2 two references to the same object. What you want to do is to clone the o1 object and to store the cloned copy in o2. Search for cloning objects in JavaScript.

Solution 3:

Because you are setting the objects to the same reference point. You need to clone the object. here is a piece of code from http://www.thespanner.co.uk/2008/04/10/javascript-cloning-objects/ that allows for cloning of objects with prototyping.

Object.prototype.clone = function() {
  returneval(uneval(this));
}
alert("test".clone());
alert((3).clone());
alert(clone.clone());

Post a Comment for "Javascript: Store Object As Fixed Value?"