jQuery.extend()深层克隆嵌套对象

时间:2013-10-20 09:08:43

标签: javascript jquery clone extend

我试图用嵌套的子对象克隆一个非常复杂的对象。

对象的结构如下:

  • Board有n个BoardElement元素
  • BoardElement有n个元素 BoardElementUnits

http://pastebin.com/2NgQQXUC

使用jQuery.extend():

var board = $.extend(true, {}, this.game.board)

不会克隆嵌套对象,所以我使用了JSON来确保没有对源对象的剩余引用。

var boardJSON = JSON.stringify(JSON.decycle(this.game.board));
var board =  JSON.retrocycle($.parseJSON(boardJSON));

这非常有效,但表现很糟糕。

1 个答案:

答案 0 :(得分:1)

终于找到了答案: JQuery目前不支持深度克隆用户定义的对象,但是这个库可以: owl