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