JavaScript – робимо код чистішим з використанням декораторів - Блог ITVDN
ITVDN: курси програмування
Відеокурси з
програмування
УКР
  • РУС
  • УКР

    Вибери свою IT спеціальність

    Підписка
    УКР
    • РУС
    • УКР
    Arrow
    27 березня відбудеться вебінар «Підготовка до співбесіди з PHP» Подробиці і реєстрація
    Arrow

    JavaScript – робимо код чистішим з використанням декораторів

    advertisement advertisement

    Работая с JavaScript, вам иногда нужно использовать функцию ‘setTimeout’, чтобы выполнить фрагмент кода в следующем tick. Если вы работаете, например, с Angular, то, скорее всего, уже знакомы с чем-то подобным.

    Пример ‘setTimeout’ “hack”:

    Назовите меня психом, но я терпеть не могу писать код подобным образом, особенно когда ‘setTimeout’ не то, что мне сейчас надо. Давайте сделаем проще. Попробуем превратить функцию ‘setTimeout’ в Декоратор.

    Создадим метод Декоратор с названием ‘timeout’, чтобы код был чище.

    В typescript или babel-метод Декоратор - это просто функция, имеющая три параметра.

    Цель: или функция-конструктор класса для static member, или прототип класса для instance member.

    Ключ: имя member.

    Дескриптор: свойство Дескриптора для member.

    В нашем случае нужно передать аргумент декоратору (количество миллисекунд, которое по умолчанию будет равно нулю), так что будем использовать Decorator Factory.

    Decorator Factory – это простая функция, которая возвращает выражение, которое будет вызвано декоратором в рантайме.

    Дальше, получаем ссылку на оригинальный метод из значения свойства дескриптора.

    Потом переопределяем исходное значение и создаем новую функцию, которая оборачивает исходную с ‘setTimeout’.

    Теперь можем использовать наш декоратор следующим образом:

    Так намного лучше и вы не будете спорить, что выглядит круче.

    В итоге:  

    Вы можете использовать декораторы и создавать с ними крутые приложения. Декораторы существуют не только для frameworks или библиотек, так что будьте креативными и используйте их.

    Оригинальная статья на английском языке. 

    КОМЕНТАРІ ТА ОБГОВОРЕННЯ
    advertisement advertisement

    Купуй передплатуз доступом до всіх курсів та сервісів

    Бібліотека сучасних IT знань у зручному форматі

    Вибирай свій варіант підписки залежно від завдань, що стоять перед тобою. Але якщо потрібно пройти повне навчання з нуля до рівня фахівця, краще вибирати Базовий або Преміум. А для того, щоб вивчити 2-3 нові технології, або повторити знання, готуючись до співбесіди, підійде Пакет Стартовий.

    Стартовий
    • Усі відеокурси на 3 місяці
    • Тестування з 10 курсів
    • Перевірка 5 домашніх завдань
    • Консультація з тренером 30 хв
    59.99 $
    Придбати
    Весняний
    • Усі відеокурси на 15 місяців
    • Тестування з 24 курсів
    • Перевірка 20 домашніх завдань
    • Консультація з тренером 120 хв
    90.00 $
    219.99 $
    Придбати
    Акція
    Преміум
    • Усі відеокурси на 12 місяців
    • Тестування з 24 курсів
    • Перевірка 20 домашніх завдань
    • Консультація з тренером 120 хв
    169.99 $
    Придбати
    Notification success