JavaScript

Wat zijn closures?

Closures zijn functies die toegang hebben tot variables van hun parent scope.

Home/Categorieën/JavaScript/Wat zijn closures?

Closure gedrag

Functie binnenin functie Inner functie kan outer variables gebruiken Outer variables blijven 'alive' zolang inner functie exists

Praktisch nut

Data privacy - variables zijn niet direct accessible Function factories - maak gecustomiseerde functies Callbacks - functie 'remembers' context

Code Voorbeelden

JAVASCRIPTClosure voorbeelden
// Simple closure
function makeCounter() {
  let count = 0; // outer variable
  
  return function() {
    count++;
    return count;
  };
}

const counter = makeCounter();
console.log(counter()); // 1
console.log(counter()); // 2
console.log(counter()); // 3

// count is private! Niet direct accessible

// Data privacy pattern
function createBankAccount(initialBalance) {
  let balance = initialBalance;
  
  return {
    deposit(amount) {
      balance += amount;
      return balance;
    },
    withdraw(amount) {
      balance -= amount;
      return balance;
    },
    getBalance() {
      return balance;
    }
  };
}

const account = createBankAccount(1000);
account.deposit(500);      // 1500
account.withdraw(200);     // 1300
console.log(account.getBalance()); // 1300
// balance is private!

Relevante trefwoorden

closurescopeprivacy