Clone Javascript Objects
If you are doing this :
var temp = {a:5};
var array = [];
for(var i =0; i<5;i++){
var t = temp;
t.i = i;
array.push(t);
}
You will get :
[{"a":5,"i":4},{"a":5,"i":4},{"a":5,"i":4},{"a":5,"i":4},{"a":5,"i":4}]
instead of:
[{"a":5,"i":0},{"a":5,"i":1},{"a":5,"i":2},{"a":5,"i":3},{"a":5,"i":4}]
This is because Javascript uses deep linking when you assign an object to another variable.
My current choice for shallow cloning is Underscore.js clone function.
It is as easy as
var t = _.clone(obj);
Or, you can iterate over the original object and copy all the keys and values.
Written by Balakrishnan V K
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Javascript
Authors
Related Tags
#javascript
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#