6

かなり率直な質問ですが、グーグルはまだ何も見つけていません。

Coffeescript でオブジェクトのインスタンスをコピー/クローン/複製するにはどうすればよいですか? コピーされた値を持つ新しいインスタンスを返すメソッドをいつでも作成できますclone()が、それはエラーが発生しやすい方法のようです。

CoffeeScript はより簡単なソリューションを提供しますか?

4

3 に答える 3

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

Adopted from : JavaScript でオブジェクトをディープ クローンする最も効率的な方法は何ですか?

于 2012-06-16T04:44:27.123 に答える
7

ヒントをくれた Larry Battle に感謝します:

jQuery.extend を使用する John Resig のソリューションは見事に機能します。

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

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

詳細については、jQuery のドキュメントを参照してください。

于 2012-06-17T04:13:35.130 に答える
2

CoffeeScriptクックブックから:

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

Underscore.js には浅いクローン機能もあります。

http://underscorejs.org/#clone

于 2012-12-04T21:46:15.093 に答える