будет работать
аюсь расширить Array, чтобы я мог добавить свою собственную дополнительную функциональность. Я читал, что расширение Array.prototype может быть опасным, поэтому я пытаюсь сделать это правильно с наследованием классов.
Проблема, с которой я сталкиваюсь, заключается в том, что карта не определена. Очевидно, я могу обойти это, но я не понимаю, почему, поскольку я расширяю массив, и поэтому должен иметь его функциональность?
export default class Array2 extends Array {
constructor(items) {
super(...items);
}
addOne() {
return this.map((x)=>{
return x+1;
})
}
}
let arry2 = new Array2 ([9, 1, 4, 0]).addOne();
console.log(arry2);
Я ожидаю, что Array2 (4) [10, 2, 5, 1] войдет в консоль, но вместо этого я получаю следующую ошибку.
Uncaught TypeError: undefined is not a function
редактировать Удаление конструктора, похоже, решает проблему, но не объясняет, почему она завершается неудачно, когда присутствует конструктор. особенно когда конструктор просто вызывает super.