Closures
Mit Closures können wir auf Variablen zugreifen, die eigentlich gar nicht mehr existieren sollten.
const secureBooking = function () {
let passengerCount = 0;
return function () {
passengerCount++;
console.log(`${passengerCount} passengers`);
};
};
const booker = secureBooking();
booker(); // 1 passengers
booker(); // 2 passengers
booker(); // 3 passengersHier hat also die Funktion booker() Zugriff auf den aktuellen Status der Variable passengerCount, obwohl diese nur im äusseren Scope existiert.
Beispiele
let f;
const g = function () {
const a = 23;
f = function () {
console.log(a * 2);
};
};
g();
f(); // 46
const h = function () {
const b = 777;
f = function () {
console.log(b * 2);
};
};
// Re-assigning f function
h();
f(); // 1554Last updated