Mi az áramkör javascript

Mi az áramkör javascript

Ez egy meglehetősen egyszerű téma, de szükség megértést. Először is, nézzük meg, mi történik a függvény belsejében.

Mi folyik itt, és mit LexicalEnvironment. Nézzünk szembe a tényekkel.

Most jön a következő példát. Mondd, mi jelenik meg ebben az esetben?

Gondolod? Azt hiszem, a többség azt válaszolta, hogy a 3-as szám jelenik meg, és ez a helyes válasz, de meg tudja mondani, hogy a tolmács értesült a változó b. Végtére is, ez nem az a függvény törzse. Ha nem, akkor menjünk foglalkozik.

FONTOS! Tartsuk szem előtt, hogy az ingatlan [[Scope]] van beállítva az a hely, ahol a funkció nyilvánították, és nem okozott, ezért az alábbi kódot jeleníti meg a 3-as szám, nem 5, mivel egyesek szerint.

bar b = 2;
funkció x (a) riasztási (a + b);
>

Ez volt minden, csak egy előjáték, hogy megértsük, hogyan működik mindez, és könnyebb megérteni, hogy az áramkör működik. És most folytassa közvetlenül a cikk témáját.

Mint már mondtam, LexicalEnvironment objektum megszűnik minden végrehajtása után a funkció és újra létrejön a visszahívás. Azonban, ha meg akarjuk menteni az adatokat? Ie szeretnénk minden meg van írva LexicalEnvironment most megőrzött és használjuk fel a következő hívás? Ez az, és vannak áramkörök.

var func = üdvözlő (# '# Nicholas');
üdvözlő = null;
func ();

Nos, nézzük, hogy meghatározza, hogy mi egy ilyen áramkört.

Circuit - funkció együtt az összes változót, hogy rendelkezésre állnak neki.

funkció makeCounter () var CURRENTCOUNT = 0;

visszatérő funkció () CURRENTCOUNT ++;
visszatérés CURRENTCOUNT;
>;
>

var számláló = makeCounter ();
számláló ();
számláló ();
riasztás (számláló ()); // 3