Можно с помощью «
сеттеров» — функции, которая вызывается, когда объекту назначают это свойство.
Например, в классе определить метод, который будет вызываться при установке значения свойству:
class Habr {
__values = [];
static delimiter = ';';
get qna() {
return this.__values.join(Habr.delimiter);
}
set qna(value) {
if (!this.__values.includes(value)) {
this.__values.push(value);
}
}
}
const foo = new Habr();
foo.qna = 'x=y';
foo.qna = 'a=b';
console.log(foo.qna); // x=y;a=b
Для ранее существовавшего объекта можно переназначить его свойство, вписав сеттер через
Object.defineProperty()