相当直截了当的问题,但谷歌搜索还没有发现任何事情。
如何在Coffeescript中复制/克隆/复制对象的实例?我总是可以创建一个clone()
方法,该方法返回一个带有复制值的新实例,但这似乎是一种容易出错的方法。
CoffeeScript是否提供更简单的解决方案?
答案 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也有浅层克隆功能: