Nenne einen praktischen Einsatz einer Closure und den klassischen Bug damit.
Praktisch: ein Counter oder ein Cache, dessen State von außen nicht erreichbar sein darf, eine Function-Factory oder alles, was sich einen Wert zwischen Aufrufen merken muss. Der klassische Bug ist for (var i = 0; ...) setTimeout(() => console.log(i)), das jedes Mal den finalen Wert ausgibt, weil alle Callbacks dieselbe Bindung einschließen. let erzeugt pro Iteration eine neue Bindung und behebt das.