Вы можете сделать это с помощью свойства accessor с функцией getter :
let obj = {
prop1: 21,
get prop2() {
return this.prop1 * 2;
}
};
console.log(obj.prop1); // 21
console.log(obj.prop2); // 42
Если хотите, вы также можете определить для него setter :
let obj = {
prop1: 21,
get prop2() {
return this.prop1 * 2;
},
set prop2(value) {
this.prop1 = value / 2;
}
};
console.log(obj.prop1); // 21
console.log(obj.prop2); // 42
obj.prop2 = 8;
console.log(obj.prop1); // 4
console.log(obj.prop2); // 8
Подробнее о MDN: get
, set
.
Наконец, вы можете сделатьэто в определениях классов тоже:
class Example {
constructor(prop1) {
this.prop1 = prop1;
}
get prop2() {
return this.prop1 * 2;
}
set prop2(value) {
this.prop1 = value / 2;
}
}