Closure
Ein Closure ist die Bindung einer Funktion an ihre Definitionsumgebung, die einer inneren Funktion den Zugriff auf die Variablen der äußeren Funktion erlaubt, selbst nachdem diese zurückgekehrt ist.
Zweck
Ermöglicht Datenkapselung, Zustandserhalt und Funktionsfabriken — eine Kerntechnik der funktionalen Programmierung.
Mechanismus
Eine Funktion erfasst bei ihrer Erzeugung ihre lexikalische Umgebung (Variablenbindungen). Selbst nach der Rückkehr der äußeren Funktion hält das Closure eine Referenz auf die Umgebung. Verwendungen: private Variablen, Callback-Zustand, Currying und das Modul-Muster. Vorsicht vor versehentlich erfassten Schleifenvariablen.
Anwendungsfälle
- Funktionale Programmierung
- Datenschutz
- Callback-Zustand