Иногда меня раздражают требования к памяти для Array.prototype.concat
, поскольку это не делается на месте и возвращает новый массив вместо фактического объединения массива, переданного в аргументе, с вызываемым экземпляром concat
, как логически подразумевает имя.
Предполагая, что сотрудничество с другими библиотеками не является проблемой, будут ли какие-либо недостатки (производительность, уменьшение ограничения длины и т. д.) повторной реализации этого?
Array.prototype.concat = function (array) {
this.push.apply(this, array);
return this;
};
И наоборот, будет ли эта альтернативная реализация действительно уменьшать использование вспомогательной памяти до O (1) или какой-то внутренний механизм будет поддерживать его на уровне O (n)?
concat
логически подразумевает изменение аргумента(ов)? - person Bergi   schedule 16.07.2015.concat
? Я с трудом могу поверить. Каково ваше приложение? - person Bergi   schedule 16.07.2015.concat
. Вместо этого используйте.append
или около того. - person Bergi   schedule 16.07.2015concat
не является мутатором. Почему его не должно быть, когдаpush
есть? - person Patrick Roberts   schedule 16.07.2015