JavaScripts Schließung ist eine Funktion, die sich aktiv entwickelt, und es ist auch eine Funktion, die sich passiv entwickelt. Mit anderen Worten: Einerseits kann JS einige Probleme mit Schließungen besser lösen bestimmte Probleme, JS-Problem, und musste Schließungen verwenden, um das Problem kaum zu lösen.
Ersteres wird hier nicht besprochen. Wenn JS-Verschlüsse das Problem besser lösen können, ist es natürlich besser, Verschlüsse zu verwenden.
Was ich diskutiere, ist Letzteres, aufgrund der Einschränkungen von JS selbst, die mit Abschlüssen gelöst werden müssen, wie zum Beispiel der Anforderung „Variablen werden nur einmal initialisiert“.
Die konventionelle Sprache wird wie folgt gelöst:
JavaScript löst dieses Problem normalerweise (mithilfe von Verschlüssen):
Aber ich bevorzuge diese Methode (Verzicht auf Schließungen):
Da Letzteres eine bessere Skalierbarkeit aufweist, kann Letzteres einfach eine andere Funktion definieren (d. h. eine einfache lineare Erweiterung), während Ersteres (Abschluss) komplett neu geschrieben werden muss (Deshalb hört man oft das Wort Refactoring).