Javascript - Circuit, șef IT

Declararea unor funcții, de exemplu, f1. În cadrul acestei funcții, declarăm o altă funcție f2 (intern) și returnează ca urmare a primei. lasa functia f1 are un parametru (variabila) x. iar funcția f2 - variabilă (parametru) y. În plus față de acces la funcția de parametrul x f2 are mai mult acces la parametrul și y (pe lanțul domeniul de aplicare).

Acum, pentru partea distractivă, și anume, ia în considerare ceea ce se întâmplă în cazul în care un c1 variabilă atribuie un apel la o funcție f1 (2).

Ca rezultat al funcției f1 (2) întoarce celălalt (interior) funcția f2. Cu toate acestea, funcția în acest F2 context, face posibilă obținerea unor valori ale variabilelor funcției părinte (f1), în ciuda faptului că funcția f1 a terminat executarea sa.

Să vedem informații detaliate despre funcția:

Imaginea arată că funcția internă amintesc mediul în care a stabilit. Are acces la variabila x, funcția de părinte. Valoarea variabilei (x) este egal cu numărul 2.

Acum obținem o valoare c1 consolă funcție (5):

Acest afișaj ghid în rezultatul consolei adăugării valorilor x și y parametri. Valoarea lui x f2 funcția este preluată din sfera părinte.

Vyshepredstavlennye repetați pașii, dar folosind o altă variabilă (c2):

Reprezentați variabile și funcții ale acestui exemplu, pentru o claritate în următoarea schemă:

js-codul final în exemplul de mai sus:

Închideri în practică

Să presupunem că doriți să creați niște ferestre modale pe o pagină cu legarea lor la anumite butoane. În plus față de specificându a spus mai multe despre ceea ce trebuie făcut astfel încât să puteți schimba cu ușurință titlul și conținutul unei ferestre modal, dacă este necesar.

Buton, o fereastră modal:

Funcția, revenind, ca urmare a unei alte funcții:

Codul care realizează crearea de ferestre modale și setarea fiecare dintre ele un titlu și conținut:

Codul rezultat (script +):

Dacă doriți să modificați la apariția oricăror evenimente titlul și conținutul unei ferestre modale (de exemplu, în al doilea rând), va arata astfel:

Crearea unei metode particulare de închiderile

De exemplu, a scrie o funcție care va conta de câte ori ne-am făcut clic pe un anumit buton.

Functia are un _count și funcții variabile (metode) incrementCount privat. Pentru a controla metodele private, sunt metode publice (creștere () și valoarea), care este funcția returnează ca rezultat.

Super, aproape totul este clar! Dar există câteva probleme, voi fi recunoscător dacă ați răspuns.

Aspectele legate de al doilea exemplu.
3) Cum _count va crește dacă) funcția (incrementCount nu este numit?
4) Și fiecare apel countClickBtn1 () va apela această funcție funcție () # 123; întoarcere _count; # 125;?

În al doilea exemplu, era necesar să se adauge mai mult pentru a reveni provocare _count la funcții private. Dar a făcut puțin pentru interesantă și a schimbat o descriere pic.