1 месяц назад
Язык JavaScript - Декораторы и переадресация вызова, call/apply
Представьте, что у вас есть функция. Она делает своё дело. Но вам нужно добавить логирование. Или кэширование. Или проверку прав доступа. Или замер времени выполнения. Вы можете переписать функцию, добавив туда новый код. Но что, если функций много? Что, если вы не можете менять оригинал? Что, если вам нужно применить одно и то же улучшение к разным функциям? Встречайте декораторы - мощный паттерн, который позволяет оборачивать функции, добавляя им новое поведение без изменения исходного кода. А...
1 месяц назад
Язык JavaScript - Объект функции, NFE
Вы думаете, что функция - это просто "кусочек кода, который можно вызвать"? Вы ошибаетесь. В JavaScript функция - это гражданин первого класса, объект высшего порядка, который можно присвоить переменной, передать как аргумент, вернуть из другой функции... и даже добавить к нему свойство. Да, вы не ослышались. У функций есть свойства. Как у обычных объектов. Сегодня мы разберём двойственную природу функций: с одной стороны - вызываемая конструкция, с другой - полноценный объект. И заодно познакомимся...