Mis on JavaScripti sulgemised ja kuidas need toimivad?



JavaScripti sulgurid luuakse iga funktsiooni loomise ajal funktsiooni loomise ajal. See tagab parema kontrolli koodi üle nende kasutamisel.

on funktsioonidele orienteeritud keel, mis annab kasutajale palju vabadust. Võite funktsiooni luua dünaamiliselt, kopeerida selle teise muutujasse või edastada argumendina teisele funktsioonile ja helistada hiljem teisest kohast. JavaScripti sulgurid luuakse iga funktsiooni loomise ajal funktsiooni loomise ajal. Selles artiklis mõistame sulgemisi järgmises järjestuses:

Sissejuhatus JavaScripti sulgemistesse

Sulgur on kombinatsioon a funktsioon koos viidetega ümbritsevale olekule, st leksikaalsele keskkonnale. Teisisõnu, sulgemine annab teile juurdepääsu sisemisest funktsioonist välise funktsiooni ulatusse.





kooder - sulgemised javascriptis - edureka

Enamik arendajatest kasutab JavaScripti sulgureid teadlikult või teadvustamata. See tagab parema kontrolli koodi üle nende kasutamisel. Samuti on see kõige sagedamini esitatav küsimus mis tahes ajal .



objektide massiivi loomine

Näide:

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 ())

Väljund:

10
10
10



Siin saate juurde pääseda muutuv x, mis on määratletud funktsioonis foo () funktsiooni sisemine () kaudu, kuna hilisem säilitab sulgemisfunktsiooni ulatus ahela sulgemisfunktsiooni täitmise ajal. Seega teab sisemine funktsioon x väärtust selle ulatuseahela kaudu. Nii saate JavaScripti sulgureid kasutada.

Praktilised sulgemised

Sulgemine võimaldab teil seostada leksikaalset keskkonda funktsiooniga, mis neid andmeid töötab. Sellel on ilmseid paralleele objektorienteeritud programmeerimine , kus objektid võimaldavad meil seostada objekti omadusi ühe või mitme meetodiga.

Sellest tulenevalt saate sulgurit kasutada kõikjal, kus tavaliselt võite objekti kasutada ainult ühe meetodiga.

Näide:

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

Ülaltoodud näide on tavaliselt lisatud tagasihelistamiseks: üks funktsioon, mis käivitatakse vastusena sündmusele.

erinevus lõpliku ja lõpliku vahel

Reguleerimisala kett

JavaScripti sulgemistel on kolm ulatust, näiteks:

  • Kohalik ulatus
  • Väliste funktsioonide ulatus
  • Ülemaailmne ulatus

Levinud viga on teadvustamine, et juhul, kui välimine funktsioon on ise pesastatud funktsioon, hõlmab juurdepääs välise funktsiooni ulatusele ka välise funktsiooni ümbritsevat ulatust, luues tõhusalt funktsioonide ahelate ahela.

// globaalne ulatus var x = 10 funktsiooni summa (a) {tagastusfunktsioon (b) {tagastusfunktsioon (c) {// välifunktsioonide ulatus tagastusfunktsioon (d) {// kohalik ulatus tagastab a + b + c + d + x}}}} console.log (summa (1) (2) (3) (4)) // log 20

Seda saab kirjutada ka ilma anonüümsete funktsioonideta:

sõõrikuplaan vs sektordiagramm
// globaalne ulatus var x = 10 funktsiooni summa (a) {tagastusfunktsioon summa2 (b) {tagastusfunktsioon summa3 (c) {// välimisfunktsioonide ulatus tagastusfunktsioon summa4 (d) {// kohalik ulatus tagastab a + b + c + d + x}}}} var s = summa (1) var s1 = s (2) var s2 = s1 (3) var s3 = s2 (4) konsool.log (s3) // log 20

Ülaltoodud näites on rida pesastatud funktsioone, millel kõigil on juurdepääs funktsiooni välisele ulatusele. Seega võite öelda, et sulguritel on juurdepääs kõigile väliste funktsioonide ulatusele, mille piires need deklareeriti.

Sulgemine aasas

Saate kasutada JavaScripti sulgureid anonüümse funktsiooni salvestamiseks iga indeksis massiiv . Võtame näite ja vaatame, kuidas sulgureid silmus kasutatakse.

Näide:

funktsioon external () {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]())

Väljund:

3
3
3
3

Sellega oleme jõudnud oma artikli lõpuni. Loodan, et saite aru, kuidas JavaScripti sulgurid toimivad ja kuidas neid koodi paremaks kontrollimiseks kasutatakse.

Nüüd, kui olete teadnud JavaScripti sulgemisest, vaadake järgmist autor Edureka. Veebiarenduse sertifitseerimiskoolitus aitab teil õppida, kuidas luua muljetavaldavaid veebisaite HTML5, CSS3, Twitter Bootstrap 3, jQuery ja Google API-de abil ning juurutada see Amazon Simple Storage Service'i (S3).

Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises „Sulgemised JavaScriptis” ja me võtame teiega ühendust.