JavaScript - обновить значение экземпляра в классе после изменения вызываемых параметров - PullRequest
0 голосов
/ 08 апреля 2020

Я совершенно новичок в JS и OOPS (а также не уверен насчет названия).

В приведенном ниже фрагменте, содержащем класс Car и его экземпляр. Я хочу спросить, есть ли способ обновить экземпляр после изменения одного из параметров класса. Например, я хочу, чтобы ожидаемый вывод обновлялся, т.е. NewEagl после изменения параметров. Код ниже возвращает ("Орел") оба раза.

function Car(make, model, year) {
  this.make = make;
  this.model = model;
  this.year = year;
}

var mak = 'Eagle'
const car1 = new Car(mak, 'Talon TSi', 1993);

console.log(car1.make);
// output: "Eagle"
function changemak() {
    mak = 'NewEagl';
}

changemak();
console.log(car1.make);
// Expected output: "NewEagl"

1 Ответ

3 голосов
/ 08 апреля 2020

Когда вы присваиваете переменную свойству, оно просто копирует значение, но не устанавливает постоянной связи между переменной и свойством. Таким образом, изменение mak не изменится car1.make.

changemak необходимо принять Car в качестве параметра и установить его свойство.

function changemak(car) {
    car.make = 'NewEagl';
}
changemak(car1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...