Čo sú uzávierky v JavaScripte a ako fungujú?



Uzávery v JavaScripte sa vytvárajú zakaždým, keď je vytvorená funkcia, v čase vytvorenia funkcie. Poskytuje lepšiu kontrolu nad kódom pri ich používaní.

je funkčne orientovaný jazyk, ktorý dáva používateľovi veľkú slobodu. Funkciu môžete vytvoriť dynamicky, skopírovať do inej premennej alebo odovzdať ako argument inej funkcii a volať z iného miesta neskôr. Uzávery v JavaScripte sa vytvárajú zakaždým, keď je vytvorená funkcia, v čase vytvorenia funkcie. V tomto článku budeme rozumieť uzávery v nasledujúcom poradí:

ako obrátiť číslo

Úvod do uzávierok v JavaScripte

Uzáver je kombináciou a funkcia zviazané s odkazmi na jeho okolitý stav, tj. lexikálne prostredie. Inými slovami, uzáver vám poskytuje prístup z vnútornej funkcie do rozsahu vonkajšej funkcie.





kodér - uzávery v javascript - edureka

Väčšina vývojárov používa uzávery v JavaScripte vedome alebo nevedome. Poskytuje lepšiu kontrolu nad kódom pri ich používaní. Je to tiež najčastejšie kladená otázka počas ktoréhokoľvek z nich .



Príklad:

function foo () {var x = 10 function inner () {return x} return internal} var get_func_inner = foo () console.log (get_func_inner ()) console.log (get_func_inner ()) console.log (get_func_inner ())

Výkon:

10
10
10



Tu máte prístup k premenná x, ktorý je definovaný vo funkcii foo () prostredníctvom funkcie internal (), pretože neskôr zachováva reťazec rozsahu uzatváracej funkcie v čase vykonania uzatváracej funkcie. Vnútorná funkcia teda pozná hodnotu x prostredníctvom reťazca rozsahu. Takto môžete používať uzávery v JavaScripte.

Praktické uzávery

Uzávery vám umožňujú spojiť lexikálne prostredie s funkciou, ktorá pracuje s týmito údajmi. Toto má zrejmé paralely objektovo orientované programovanie , kde objekty nám umožňujú priradiť vlastnosti objektu k jednej alebo viacerým metódam.

V dôsledku toho môžete uzáver použiť kdekoľvek, kde by ste bežne mohli použiť objekt iba jednou metódou.

Príklad:

function makeSizer (size) {return function () {document.body.style.fontSize = size + 'px'}} var size12 = makeSizer (12) var size14 = makeSizer (14) var size16 = makeSizer (16)

Vyššie uvedený príklad je všeobecne pripojený ako spätné volanie: jedna funkcia, ktorá sa vykoná ako odpoveď na udalosť.

Reťazec rozsahu

Uzávery v JavaScripte majú tri rozsahy, ako napríklad:

  • Miestny rozsah pôsobnosti
  • Rozsah vonkajších funkcií
  • Globálny rozsah

Častou chybou je neuvedomenie si, že v prípade, keď je vonkajšia funkcia sama o sebe vnorenou funkciou, prístup k rozsahu vonkajšej funkcie zahŕňa aj ohraničujúci rozsah vonkajšej funkcie, čím sa efektívne vytvára reťazec rozsahov funkcií.

// globálny rozsah var x = 10 súčet funkcií (a) {návratová funkcia (b) {návratová funkcia (c) {// vonkajšia funkcia rozsahu návratová funkcia (d) {// miestny rozsah návrat a + b + c + d + x}}}} console.log (sum (1) (2) (3) (4)) // denník 20

Môže byť tiež napísaný bez anonymných funkcií:

// globálny rozsah var x = 10 súčet funkcií (a) {návratová funkcia súčet2 (b) {návratová funkcia súčet3 (c) {// vonkajšia funkcia rozsahu návratová funkcia sum4 (d) {// lokálny rozsah návratová a + b + c + d + x}}}} var s = suma (1) var s1 = s (2) var s2 = s1 (3) var s3 = s2 (4) console.log (s3) // log 20

Vo vyššie uvedenom príklade existuje rad vnorených funkcií, z ktorých všetky majú prístup k vonkajšiemu rozsahu funkcie. Dá sa teda povedať, že uzávery majú prístup ku všetkým rozsahom vonkajších funkcií, v rámci ktorých boli deklarované.

čo je znak v jave

Uzávierka v rámci slučky

Uzávery v JavaScripte môžete použiť na uloženie anonymnej funkcie pri každom indexe súboru pole . Uveďme si príklad a pozrime sa, ako sa uzávery používajú v rámci slučky.

Príklad:

funkcia vonkajší () {var arr = [] var i pre (i = 0 i<3 i++) { // storing anonymus function arr[i] = function () { return i } } // returning the array. return arr } var get_arr = outer() console.log(get_arr[0]()) console.log(get_arr[1]()) console.log(get_arr[2]())

Výkon:

3
3
3
3

Týmto sme sa dostali na koniec nášho článku. Dúfam, že ste pochopili, ako fungujú uzávery v JavaScripte a ako sa používajú na získanie lepšej kontroly nad kódom.

Teraz, keď viete o uzávierkach v JavaScripte, pozrite sa na od Edureka. Osvedčenie o školení v oblasti vývoja webu vám pomôže Naučte sa, ako vytvárať pôsobivé webové stránky pomocou rozhraní HTML5, CSS3, Twitter Bootstrap 3, jQuery a Google API a ako ich nasadiť do služby Amazon Simple Storage Service (S3).

Máte na nás otázku? Uveďte to v sekcii komentárov v časti „Uzávery v jazyku JavaScript“ a my sa vám ozveme.