Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I clone/copy an instance of an object in CoffeeScript?

Fairly straight forward question but Googling hasn't turned up anything as yet.

How do I copy/clone/duplicate an instance of an object in Coffeescript? I could always just create a clone() method which returns a new instance with copied values, but that seems like an error-prone way to go about it.

Does CoffeeScript offer a simpler solution?

like image 778
Chris Nolet Avatar asked Jun 16 '12 03:06

Chris Nolet


2 Answers

This might work.

clone = (obj) ->
  return obj  if obj is null or typeof (obj) isnt "object"
  temp = new obj.constructor()
  for key of obj
    temp[key] = clone(obj[key])
  temp

Adopted from : What is the most efficient way to deep clone an object in JavaScript?

like image 130
Larry Battle Avatar answered Sep 21 '22 23:09

Larry Battle


Thanks to Larry Battle for the hint:

John Resig's solution of using jQuery.extend works brilliantly!

// Shallow copy
newObject = $.extend({}, oldObject);

// Deep copy
newObject = $.extend(true, {}, oldObject);

More information can be found in the jQuery documentation.

like image 20
Chris Nolet Avatar answered Sep 21 '22 23:09

Chris Nolet