Давайте начнем с более простого примера:
class Test {
constructor(testMessage) {
this.testMessage = testMessage;
}
show() {
println(this.testMessage);
}
}
Что вы ожидаете от этого кода?
var message = 'hello';
var test = new Test(message);
message = 'goodbye';
test.show();
То, как ваш код работает сейчас, похоже, что вы быожидается, что это напечатает 'goodbye'
, но на самом деле это напечатает 'hello'
.
Это потому, что вы передаете значение переменной в конструктор Test
.Теперь у вас есть две переменные, указывающие на одно и то же значение 'hello'
.Затем вы изменяете первую переменную , но это не меняет автоматически значение второй переменной .
Чтобы исправить это, вы можете просто использовать одну глобальную переменную message
, что-токак это:
class Test {
show() {
println(message);
}
}
var message = 'testing';
var test = new Test();
test.show();
Или вы можете создать что-то вроде setMessage()
функции, которая позволит вам изменить значение внутри класса:
class Test {
constructor(testMessage) {
this.testMessage = testMessage;
}
show() {
println(this.testMessage);
}
setMessage(testMessage) {
this.testMessage = testMessage;
}
}