• Изучаю ООП JavaScript. Метод в методе?

    R1ze13
    @R1ze13
    На самом деле всё довольно просто. Можно пойти двумя путями:
    1) Создать функцию внутри метода и вызывать её. Простой и удобный способ. Не захламляется класс и не нужно создавать никаких параметров для метода

    slidesNavigation() {
      // твой метод, в котором уже есть код
      ...
    
      // заменяешь повторяющийся фрагмент на вызов функции
      toggleDotClasses();
    
      // функция, в которую завёрнут часто повторяющийся фрагмент
      function toggleDotClasses() {
        sliderDots[indexItemPrev].classList.remove('active');
        indexItemPrev = indexItem;
        sliderDots[indexItem].classList.add('active');
      }
    }


    2) Создать новый метод в классе. Так стоит сделать, если есть как минимум подозрение, что этот твой метод может потребоваться в других методах кроме slidesNavigation

    class PortfolioSlider {
      ...
    
      // новый метод класса. нижнее подчеркивание намекает на то, что метод как бы приватный (служебный)
      _toggleDotClasses(sliderDots, indexItemPrev, indexItem) {
        sliderDots[indexItemPrev].classList.remove('active');
        indexItemPrev = indexItem;
        sliderDots[indexItem].classList.add('active');
      }
    
      slidesNavigation () {
        this._toggleDotClasses(sliderDots, indexItemPrev, indexItem);
      }
    }


    На мой взгляд лучше использовать первый вариант. В текущей реализации класса второй вариант не очень удобен
    Ответ написан
    1 комментарий