Bug Tracker

Opened 16 years ago

Closed 13 years ago

#2472 closed enhancement (worksforme)


Reported by: frink Owned by:
Priority: minor Milestone:
Component: core Version:
Keywords: Cc:
Blocked by: Blocking:


In writing bigger plugins it's often necessary to use clones inside of closures. JavaScript does everything by reference. but sometimes we need to create a clone. While the returned object have this capability: $().clone(); we can't use that in our plugins if what he need to clone a variable without trying to wade through the various ways to do this.

var frink = $.clone(frank);


$.clone = function(obj) {

if(obj == null
typeof(obj) != 'object')

return obj;

var r = obj.split? [] : {}; for(var x in obj)

r[x] = clone(obj[x]);

return r;


Change History (2)

comment:1 Changed 15 years ago by genezys

You could use $.extend() for objects.

var frink = $.extend({}, frank);

For arrays, concat() is great to make a fast copy:

var copy = array.concat();

comment:2 Changed 13 years ago by dmethvin

Resolution: worksforme
Status: newclosed

Between $.extend() and Array.concat.apply() it should be possible to do this already.

Note: See TracTickets for help on using tickets.