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

Замовити дзвінок

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

Підписка

Замовити дзвінок

+38 099 757 27 82

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 $
Придбати
Базовий
  • Усі відеокурси на 6 місяців
  • Тестування з 16 курсів
  • Перевірка 10 домашніх завдань
  • Консультація з тренером 60 хв
89.99 $
Придбати
Преміум
  • Усі відеокурси на 12 місяців
  • Тестування з 24 курсів
  • Перевірка 20 домашніх завдань
  • Консультація з тренером 120 хв
169.99 $
Придбати
Notification success