Метод объекта с аргументом

подскажите пожалуйста как я могу использовать значение метода random в других методах объекта, чтобы каждый раз не вызывать метод с аргументом в другом методе, а вызвать его единожды и менять лишь значение аргумента в вызове, не меняя весь код.Спасибо.

obj = {
    random: function (num) {
        return Math.floor(Math.random() * num) + 1
    },

    btn: function () {
        alert(this.random(10))
    },
    btnRes: function () {
        alert(this.random(10))
    }
}

obj.random(10)
obj.btn()
obj.btnRes()

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

Автор решения: Михаил Камахин

Например так:

const obj = {
  random(num) {
    this.randomNumber = Math.floor(Math.random() * num) + 1;
    return this.randomNumber;
  },

  btn() {
    alert(this.randomNumber);
  },
  btnRes() {
    alert(this.randomNumber);
  }
}

obj.random(10);
obj.btn();

Или так:

const obj = {
  get random() {
    return this.randomNumber;
  },

  set random(num) {
    this.randomNumber = Math.floor(Math.random() * num) + 1;
  },

  btn() {
    alert(this.randomNumber);
  },

  btnRes() {
    alert(this.randomNumber);
  }
}

obj.random = 5;
console.log(obj.random);
obj.btn();

→ Ссылка