Возможно ли свойства объекта в JS изменять с помощью методов этого объекта?

Вот что я имею в виду:

let obj = {
 "price": setPrice(),

 setPrice: function() {
   return(Math.random());
 }
}

Я пробовал этот код, он не работает. На обучающих ресурсах я таких примеров не видел. Вот и хочу понять, возможно ли вообще менять свойства таким образом? Если да, то как реализовать? Если использовать внешнюю функцию то всё срабатывает.


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

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

Вы вероятно имеете в виду это?

let object = {
  _price: 0,
  set price(value) {
    this._price = value;
  },
  get price() {
    return this._price;
  },
  setPrice(value) {
    this._price = value;
  }
};
console.log(object);
object.price = 123;
console.log(object);
object.setPrice(321);
console.log(object);

→ Ссылка