Zum Inhalt springen
uencoder

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

Verwandte Begriffe

References