jQuery.extend() deep clone nested objects

jQuery.extend() deep clone nested objects

本文关键字:clone nested objects deep extend jQuery      更新时间:2023-09-26

我正在尝试克隆一个带有嵌套子对象的相当复杂的对象。

该对象的结构如下所示:

  • 板有 n 个元素的板元素
  • BoardElement 有 n 个元素板元素单元

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));

这很好用,但表现很惨。

终于找到了答案:JQuery 目前不支持用户定义对象的深度克隆,但此库支持:猫头鹰