bybence
Kapcsolat
bybence

Felfedezés

Eszközök

Academy

Blog

Hírek

Kapcsolat

Academy

JS / React / Next.js

ByBence Academy

JS / React / Next.js

14 anyag

JavaScript alapmodell

JavaScript alapokVáltozók, típusok és referencia
Function, scope és closure
Promise, async és awaitJavaScript event loopDOM és eseménykezelésJavaScript modulok – import és export
Academy

/

JS / React / Next.js

/

JavaScript alapmodell

Function, scope és closure

JavaScript scope és closure vizuálisan: lexical environment, függvények, callbackek és hogyan őriz meg egy closure értékeket a létrehozási környezetéből.

1 perc olvasás

Frissítve: 2026. szeptember 12.

Balogh Bence

Röviden

A scope meghatározza, hogy egy név a kód mely részéről érhető el. JavaScript lexical scope-ot használ: a láthatóságot alapvetően az határozza meg, hol írtad a függvényt, nem az, hogy honnan hívtad.

Mit jelent a function, scope és closure?

A scope meghatározza, hogy egy név a kód mely részéről érhető el. JavaScript lexical scope-ot használ: a láthatóságot alapvetően az határozza meg, hol írtad a függvényt, nem az, hogy honnan hívtad.

A lényeg vizuálisan

01

Block scope: `let` és `const` blokkon belül él.

02

Function declaration/expressions saját scope-ot hozhatnak létre.

03

Closure bindingot zár be, nem pillanatfelvételt készít minden esetben.

04

Túl sok fölöslegesen megtartott referencia memóriaélettartamot növelhet.

Hogyan működik a gyakorlatban?

Closure akkor jön létre, amikor egy függvény hozzáfér a külső lexical környezet bindingjaihoz, és ezt a kapcsolatot későbbi meghíváskor is megőrzi. Ez teszi lehetővé többek között factoryk, privát állapot és callback konfigurációk elegáns megoldását.

  • Block scope: `let` és `const` blokkon belül él.
  • Function declaration/expressions saját scope-ot hozhatnak létre.
  • Closure bindingot zár be, nem pillanatfelvételt készít minden esetben.
  • Túl sok fölöslegesen megtartott referencia memóriaélettartamot növelhet.

Closure

JavaScript

function makeCounter() {
  let count = 0;
  return () => ++count;
}

const next = makeCounter();
next(); // 1
next(); // 2

Gyakorlati fejlesztői szemlélet

Callback bugnál vizsgáld meg, mely bindingot zárja be és mikor olvassa ki. Sok „régi érték” probléma valójában closure + state lifecycle megértési kérdés.

Gyakori hibák és félreértések

  • Closure-t egyszerűen függvényen belüli függvényként definiálni.
  • Dynamic scope-ot feltételezni hívási hely alapján.
  • React stale closure jelenséget automatikusan framework bugnak tekinteni.

Források és szabványok

A technikai részletekhez elsődleges szabványokat és karbantartott hivatalos dokumentációt használok. Frameworkök, böngészők és webes API-k idővel változhatnak, ezért implementálás előtt mindig ellenőrizd az aktuális dokumentációt is.

MDN JavaScript Guide

Kapcsolódó ByBence Academy

Webfejlesztés alapjaiWeb performanceJavaScript SEOWebes biztonság

Előző

Változók, típusok és referencia

Következő

Promise, async és await

Ezen az oldalon

Mit jelent a function, scope és closure?Hogyan működik a gyakorlatban?Gyakorlati fejlesztői szemléletGyakori hibák és félreértések