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

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

本文关键字:复制 对象 实例 CoffeeScript      更新时间:2023-09-26
相当

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

如何在 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

采用自:在 JavaScript 中深度克隆对象的最有效方法是什么?

感谢 Larry Battle 的提示:

John Resig使用jQuery.extend的解决方案非常有效!

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

更多信息可以在 jQuery 文档中找到。

摘自 The CoffeeScript Cookbook:

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

下划线.js还有一个浅克隆功能:

http://underscorejs.org/#clone