// closures.js
function zaehlerMitStartwert(startwert) {
return function() {
return startwert++
}
}
next1 = zaehlerMitStartwert(10)
next2 = zaehlerMitStartwert(20)
document.writeln( next1() ) // 10
document.writeln( next2() ) // 20
document.writeln( next2() ) // 21
document.writeln( next1() ) // 11
Sehr viel mehr gibt es dazu eigentlich nicht zu sagen, außer dass es
- wirklich so einfach ist (was auch zu Problemen führen kann)
- schon seit den ersten JavaScript-Versionen (und damit seit über 10 Jahren) zur Verfügung steht und
- im Gegensatz zu JavaFX Script und Scala dynamisch typisiert ist; zudem ist keine zusätzliche lokale Variable nötig, weil der Übergabeparameter
startwert
bereits eine veränderbare Variable ist. Beides ist im Hinblick auf stabile, wartbare Software nicht unbedingt als positiv zu bewerten.