@zlodiak

Почему для хелпера нужно создавать экземпляр?

У меня есть функция-хелпер. У неё есть метод, который генерирует случайное число. Чтобы получить доступ к этому методу, мне необходимо создать экземпляр класса и через этот экземпляр обращаться к методу(пометил комментариями:.

const Helper = function() {
  this.randomIntFromInterval = function(minInclusive, maxExclusive) {
      return Math.floor(Math.random() * (maxExclusive - minInclusive)) + minInclusive;
  };

  this.randomIntFromZero = function(maxExclusive) {
      return Math.floor(Math.random() * (maxExclusive));
  };              
};

// helper = new Helper();
// console.log(helper.randomIntFromZero(5));

console.log(Helper.randomIntFromZero(5));


Демо здесь.

Но я не понимаю почему нельзя обойтись без создания экземпляра. Почему бы просто не вызвать функцию так:
Helper.randomIntFromZero(5)

С моей точки зрения, этому ничего не мешает. Потому что я перед точкой передаю контекст(Help). А после точки вызываю функцию из этого контекста
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Потому что методы принадлежат непосредственно экземпляру, а не конструктору. Хотите вызывать их у конструктора - ну так сделайте их его свойствами. Правда, не очень понятно, зачем тут вообще конструктор - пусть это будет простой объект, содержащий нужные методы:

const random = {
  intFromInterval: (min, max) => Math.floor(Math.random() * (max - min)) + min,
  intFromZero: (max) => Math.floor(Math.random() * max),
};

console.log(random.intFromInterval(55, 66));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы