有时我对Array.prototype.concat
的内存要求感到烦恼,因为它没有就地完成并返回一个新数组,而不是实际连接参数中传递给参数concat
的数组就像这个名字在逻辑上意味着的那样。
假设与其他库合作不是问题,那么重新实现它会不会有任何缺点(性能,长度限制等等)?
Array.prototype.concat = function (array) {
this.push.apply(this, array);
return this;
};
相反,这种替代实现是否真的会将辅助内存使用量减少到O(1),还是某些内部机制会将其保持在O(n)?