如何在CoffeeScript中克隆/复制对象的实例?

时间:2012-06-16 03:48:15

标签: javascript coffeescript clone instance

相当直截了当的问题,但谷歌搜索还没有发现任何事情。

如何在Coffeescript中复制/克隆/复制对象的实例?我总是可以创建一个clone()方法,该方法返回一个带有复制值的新实例,但这似乎是一种容易出错的方法。

CoffeeScript是否提供更简单的解决方案?

3 个答案:

答案 0 :(得分:8)

这可能有用。

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

通过:What is the most efficient way to deep clone an object in JavaScript?

答案 1 :(得分:7)

感谢Larry Battle提示:

John Resig使用jQuery.extend的解决方案非常出色!

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

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

更多信息可在jQuery documentation

中找到

答案 2 :(得分:3)

来自CoffeeScript Cookbook:

http://coffeescriptcookbook.com/chapters/classes_and_objects/cloning

Underscore.js也有浅层克隆功能:

http://underscorejs.org/#clone

相关问题