Почему я не могу изменить объект, полученный через метод?

Учу после джавы джаваскрипт и не могу понять, почему я не могу изменить арей, который получил через гет метод?

class Car {
  movements = [124, 32, 123, 50, 12];

  getMovements() {
    return this.movements;
  }
}
const ferrari = new Car();

ferrari.movements = [1]; // Ничего не меняется
console.log(ferrari.movements);

Если я явно укажу, что это геттер, то могу изменить уже объект.

   get getMovements() {
        return this.movements;
      }

Почему это не работает с обычным методом?


Ответы (1 шт):

Автор решения: Igor

Вы, вероятно, хотели спросить вот про это:

class Car {
  _movements = [124, 32, 123, 50, 12];

  get movements() {
    return this._movements;
  }
}
const ferrari = new Car();

console.log(ferrari.movements);
ferrari.movements = [1]; // Ничего не меняется
console.log(ferrari.movements);

Надо так:

class Car {
  _movements = [124, 32, 123, 50, 12];

  get movements() {
    return this._movements;
  }
  
  set movements(value) {
    this._movements = value;
  }
}
const ferrari = new Car();

console.log(ferrari.movements);
ferrari.movements = [1]; // меняется
console.log(ferrari.movements);

→ Ссылка