TGViewer
Javascript Javascript @javascriptv · 16.9K subscribers
Post #1167 3.33K
🖥 Немного о замыканиях в Javascript

⏩Замыкание — это функция, которая имеет доступ к переменным, присутствующим в ее цепочке областей видимости, даже если внешняя функция перестает существовать.

Чтобы понять суть замыканий, мы сначала рассмотрим их характеристики:
— Даже если внешняя функция перестает существовать, замыкание по-прежнему имеет доступ к ее переменным.
— Замыкания не имеют доступа к параметру args своей внешней функции.

Давайте разберем подробнее первый пункт. Это основная функциональность любого замыкания. В этом сама суть замыканий и принцип работы.

Чтобы увидеть это в действии, мы выполним вот эту функцию buttonProps:
let buttonProps = (borderRadius) => {
const createVariantButtonProps = (variant, color) => {
const newProps = {
borderRadius,
variant,
color
};
return newProps;
}
return createVariantButtonProps;
}

let primaryButton = buttonProps("1rem"); 

Вызов функции buttonProps вернет нам другую функцию, которая является нашим замыканием.

Теперь давайте выполним это замыкание:
const primaryButtonProps = primaryButton("primary", "red");


В результате выполнения замыкание возвращает следующий объект:

{
"borderRadius":"1rem",
"variant":"primary",
"color":"red"
}


⏩Итак, почему замыкания по-прежнему имеют доступ к переменным, которые определены вне их области видимости, даже если внешняя функция перестает существовать (например, borderRadius)?

⏩Ответ прост: замыкания не хранят статические значения. Вместо этого они хранят ссылки на переменные, находящиеся внутри цепочки областей видимости. Таким образом, даже если внешняя функция умирает, внутренняя функция, то есть замыкание, по-прежнему имеет доступ к родительским переменным.

📎 Читать подробнее

@javascriptv
  • 👍 13
  • ❤ 5
  • 🔥 1
More from @javascriptv
  1. Oct 3, 2026Импорт локальных изображений vs использование изображений из папки / public в Next.js
  2. Oct 2, 2026Совет по веб-доступности 💡 Лучший способ сделать ваши ссылки, состоящие только из иконок,…
  3. Sep 30, 2026🌐 Человек, который создал первый веб-браузер, сервер и заложил основу современного интерн…
  4. Sep 29, 2026🛠️ Awesome SRE - большая подборка ресурсов для Site Reliability Engineering Репозиторий a…
  5. Sep 26, 2026Card Carousel Этот элемент веб-дизайна реализован с использованием HTML и CSS. Он представ…
  6. Sep 24, 2026photo post
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →