相当直截了当的问题,但谷歌搜索还没有出现任何问题。
如何在 Coffeescript 中复制/克隆/复制对象的实例?我总是可以创建一个clone()
返回具有复制值的新实例的方法,但这似乎是一种容易出错的方法。
CoffeeScript 是否提供更简单的解决方案?
相当直截了当的问题,但谷歌搜索还没有出现任何问题。
如何在 Coffeescript 中复制/克隆/复制对象的实例?我总是可以创建一个clone()
返回具有复制值的新实例的方法,但这似乎是一种容易出错的方法。
CoffeeScript 是否提供更简单的解决方案?
这可能会奏效。
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
感谢 Larry Battle 的提示:
John Resig 使用 jQuery.extend 的解决方案非常出色!
// Shallow copy
newObject = $.extend({}, oldObject);
// Deep copy
newObject = $.extend(true, {}, oldObject);
更多信息可以在jQuery 文档中找到。
来自 CoffeeScript 食谱:
http://coffeescriptcookbook.com/chapters/classes_and_objects/cloning
Underscore.js 还有一个浅克隆功能: