4

我正在 .clone() 收集一个集合,这样我就可以在它上面使用拼接循环而不干扰原始集合。克隆阵列中的模型是原件还是副本?

我需要的是包含原始模型的数组的副本。

感谢您提供任何信息!

4

1 回答 1

8

您将获得与包装在相同类型的新集合中的源集合相同的模型。

下面是 collection.clone 的实现:

   clone: function() {
      return new this.constructor(this.models);
    },

或者,如果您更喜欢深度克隆,请覆盖 Backbone.Collection.clone

clone: function(deep) {
  if(deep) {
    return new this.constructor(_.map(this.models, function(m) { return m.clone(); }));
  }else{
    return Backbone.Collection.prototype.clone();
  }
}

http://jsfiddle.net/puleos/9bk4d/

于 2013-05-07T16:29:17.323 回答