-
Notifications
You must be signed in to change notification settings - Fork 0
Closure Javascript
soofg edited this page Mar 11, 2021
·
2 revisions
Een closure is een functie die toegang heeft tot de variabele vanuit het bereik van een andere functie.
sayMyName is in het voorbeeld hieronder een closure, omdat het toegang heeft opde variable greeting en uiteindelijk de hele output formuleert.
Omdat sayMyName in dezelfde functie staat als greeting is dit mogelijk.
function buildName(name) {
var greeting = "Hello, " + name + "!";
var sayName = function() {
var welcome = greeting + " Welcome!";
console.log(greeting);
};
return sayName;
}
var sayMyName = buildName("John");
sayMyName(); // Hello, John. Welcome!
sayMyName(); // Hello, John. Welcome!
sayMyName(); // Hello, John. Welcome!
Onthoud:
- Closures zijn geneste functies die toegang hebben tot de outer scope
- Nadat de buitenste functie is teruggekeerd, voorkomen we, door een verwijzing naar de binnenste functie (de closures) te bewaren, dat het buitenste bereik wordt vernietigd.
Alle drie de aanroepen van de functie `myContor` hebben toegang tot dezelfde outer scope `function buildContor(i)`, dus tot dezelfde contor variabele (`var contor` en `var displayContor`) Als een van hen deze verandert, zal de volgende aanroep de waarde veranderd worden.
`myContor`wordt onderbroken maar blijft consistent.
function buildContor(i) {
var contor = i;
var displayContor = function() {
console.log(contor++);
contor++;
};
return displayContor;
}
var myContor = buildContor(1);
myContor(); // 1
myContor(); // 2
myContor(); // 3
// new closure - new outer scope - new contor variable
var myOtherContor = buildContor(10);
myOtherContor(); // 10
myOtherContor(); // 11
// myContor was not affected
myContor(); // 4
Sofya Gerges Productions 💜 | 2021
Speciale message voor docent front-end, Alles wat onder de kopjes Research Javascript & Eloquent Javascript Book staat is voor het vak Front-end. En de twee losse pagina's Codeplan + wireframes en Progressive Enchanchment ook.
- Template Engines
- Progressive Enchanchment Front-end:
- Formatters & Linters
- Text editors
- Command Line: Git Strategy
- Clean Code Javascript