Mitä ovat JavaScriptin sulkemiset ja miten ne toimivat?



JavaScriptin sulkemiset luodaan aina, kun funktio luodaan, funktion luontihetkellä. Se tarjoaa paremman hallinnan koodille niitä käytettäessä.

on toimintokeskeinen kieli, joka antaa käyttäjälle paljon vapautta. Voit luoda toiminnon dynaamisesti, kopioida sen toiseen muuttujaan tai siirtää argumenttina toiseen funktioon ja soittaa myöhemmin toisesta paikasta. JavaScriptin sulkemiset luodaan aina, kun funktio luodaan, funktion luontihetkellä. Tässä artikkelissa ymmärrämme sulkemiset seuraavassa järjestyksessä:

Johdatus JavaScriptin sulkeutumiseen

Sulkeminen on yhdistelmä toiminto niputettu viittauksiin ympäröivään tilaan eli leksikaaliseen ympäristöön. Toisin sanoen sulkeminen antaa sinulle pääsyn sisätoiminnosta ulkoisen toiminnon soveltamisalaan.





kooderi - sulkimet javascriptissä - edureka

ero menetelmän ylikuormituksen ja Java-ohituksen välillä

Suurin osa kehittäjistä käyttää JavaScriptiä tietoisesti tai tiedostamattomasti. Se tarjoaa paremman hallinnan koodille niitä käytettäessä. Se on myös yleisimmin kysytty kysymys .



Esimerkki:

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

Tuotos:

10
10
10



Täällä voit käyttää muuttuja x, joka määritellään funktiossa foo () funktion sisäinen () kautta, koska myöhempi säilyttää sulkeutuvan toiminnon laajuusketjun sulkemisfunktion suorittamisen yhteydessä. Siten sisäinen funktio tietää x: n arvon sen soveltamisketjun kautta. Näin voit käyttää sulkimia JavaScriptissä.

Käytännölliset sulkimet

Sulkujen avulla voit yhdistää leksikaalisen ympäristön toimintoon, joka toimii kyseisillä tiedoilla. Tällä on ilmeisiä yhtäläisyyksiä olio-ohjelmointi , jossa objektien avulla voimme yhdistää objektin ominaisuudet yhteen tai useampaan menetelmään.

Näin ollen voit käyttää sulkua missä tahansa, missä normaalisti voit käyttää objektia vain yhdellä menetelmällä.

Esimerkki:

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

Edellä oleva esimerkki on yleensä liitetty takaisinsoittona: yksi toiminto, joka suoritetaan vastauksena tapahtumaan.

Laajuusketju

JavaScriptin sulkemisilla on kolme laajuutta, kuten:

  • Paikallinen soveltamisala
  • Ulkopuolisten toimintojen laajuus
  • Globaali soveltamisala

Yleinen virhe ei ole ymmärtää, että siinä tapauksessa, että ulompi toiminto on itse sisäkkäinen toiminto, pääsy ulomman funktion piiriin sisältää ulomman toiminnon sulkevan laajuuden, mikä luo tehokkaasti ketjun toimintapiirejä.

// globaali laajuus var x = 10 funktion summa (a) {palautusfunktio (b) {palautusfunktio (c) {// ulkofunktioiden laajuuspalautusfunktio (d) {// paikallinen ulottuvuus palauta a + b + c + d + x}}}} console.log (summa (1) (2) (3) (4)) // loki 20

Se voidaan kirjoittaa myös ilman nimettömiä toimintoja:

// globaali laajuus var x = 10 funktion summa (a) {palautusfunktio summa2 (b) {palautusfunktio summa3 (c) {// ulkofunktioiden laajuus palautusfunktio summa4 (d) {// paikallinen ulottuvuus palauttaa a + b + c + d + x}}}} var s = summa (1) var s1 = s (2) var s2 = s1 (3) var s3 = s2 (4) konsoli.log (s3) // loki 20

Yllä olevassa esimerkissä on joukko sisäkkäisiä toimintoja, joilla kaikilla on pääsy toiminnon ulompaan laajuuteen, joten voit sanoa, että sulkemisilla on pääsy kaikkiin ulompiin toimintoihin, joissa ne on ilmoitettu.

Sulkeminen silmukassa

Voit käyttää JavaScriptiä sulkemiseen anonyymin toiminnon tallentamiseen jokaiseen hakemistoon taulukko . Otetaan esimerkki ja katsotaan, miten sulkimia käytetään silmukassa.

Esimerkki:

funktio ulompi () {var arr = [] var i for (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]())

Tuotos:

3
3
3
3

c ++ - nimitilaesimerkki

Tämän avulla olemme päässeet artikkelimme loppuun. Toivon, että ymmärsit, kuinka JavaScriptin sulkimet toimivat ja miten niitä käytetään koodin paremman hallinnan saamiseksi.

Nyt kun tiedät JavaScriptin sulkemisista, tutustu kirjoittanut Edureka. Verkkokehityksen sertifiointikoulutus auttaa sinua oppimaan luomaan vaikuttavia verkkosivustoja HTML5-, CSS3-, Twitter Bootstrap 3-, jQuery- ja Google-sovellusliittymien avulla ja asentamaan sen Amazon Simple Storage Service (S3) -palveluun.

Onko sinulla kysymys meille? Mainitse se kommenteissa 'Sulkeutumiset JavaScriptissä' ja palaamme sinuun.