Emberjs 中的本机数组不支持深层复制



Emberjs 中的原生数组不支持深度复制?我看到它只是在复制方法中返回切片数组。这是一个错误吗?

目前,这是Ember的一项改进,据@adamjmurray报道:https://github.com/emberjs/ember.js/issues/588

还有一个实现它的提议。你可以像这样使用它:

var NativeArray = Ember.Mixin.create(Ember.NativeArray, {
    copy: function(deep) {
        if (deep) {
            return this.map(function(item){ return Ember.copy(item, true) });
        } else {
            return this.slice();
        }
    }
});
NativeArray.apply(Array.prototype);

Ember.Copyable中,注释指出应该有一个布尔参数,如果为 true,则会生成一个深层副本,但显然它还没有实现。您始终可以使用自己的方法覆盖它。这样的东西适用于简单的对象(注意:未经测试,所以考虑这个伪代码(

copy: function(deep) {
  if(deep) return $.extend(true, [], this);
  else return this._super();
}

最新更新