Förstå stängning och omfattning är avgörande för att skriva effektiva JavaScript-kod. Dessa begrepp påverkar hur variabler nås och underhålls inom funktioner och block. Denna artikel förklarar dessa idéer med praktiska exempel.

Scope i JavaScript

Scope bestämmer var variabler är tillgängliga inom koden. JavaScript har två huvudtyper av omfattning: global och lokal. Variables som deklareras utanför någon funktion är global, medan de deklarerade inre funktionerna är lokala för den funktionen.

Blockera omfattning, som införs med ES6, gäller för variabler som deklareras med ] och ]]]. Dessa variabler är endast tillgängliga i blocket som de definieras i, såsom inom ] hängslen.

Förstå Closure

En stängning uppstår när en funktion behåller tillgång till variabler från dess yttre omfattning även efter att den yttre funktionen har avslutats. Detta gör det möjligt för funktioner att "komma ihåg" den miljö där de skapades.

Stängningar är användbara för datainkapsling och skapar privata variabler. De bildas naturligt när funktioner definieras i andra funktioner och returneras eller tilldelas variabler.

Praktisk Exempel

Tänk på en enkel diskfunktion som använder stängning för att behålla sitt räkning:

] Kallexempel:

funktionen skapaCounter() {[
]] låt räkna = 0;
return funktion() {
] count++;
return count;
]]]];
]]

konst counter = skapaCounter();
console.log(counter()); // 1
] console.log(counter(); // 2)

Sammanfattning

Förståelse räckvidd hjälper till att hantera rörlig tillgänglighet, medan stängningar möjliggör funktioner för att bevara staten. Tillsammans är dessa begrepp grundläggande för att skriva effektiv JavaScript-kod.