будет работать

аюсь расширить 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.

Ответы на вопрос(0)

Ваш ответ на вопрос