javascript / intermediate
Snippet
Zustand kapseln mit Closures
Closures ermöglichen es einer Funktion, sich an die Umgebung zu 'erinnern', in der sie erstellt wurde. Hier ist die Variable 'count' von außen unzugänglich, was ein Muster für privaten Zustand ohne Klassen bietet.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
function createSecureCounter() {let count = 0;return {increment: () => ++count,getCount: () => count};}const counter = createSecureCounter();console.log(counter.increment()); // 1// console.log(count); // ReferenceError
Erklärung
1
let count = 0;
Eine lokale Variable, die im Gültigkeitsbereich der äußeren Funktion definiert ist.
2
return { increment: ... };
Gibt ein Objekt mit Funktionen zurück, die weiterhin Zugriff auf die lokale Variable haben.
3
const counter = createSecureCounter();
Erstellt eine Instanz, in der der 'count'-Zustand über Aufrufe hinweg erhalten bleibt.