Aus meiner persönlichen Erfahrung, andere als anonyme Funktionen für einen Bereich zu induzieren, ich habe es auch in for-Schleifen für die Schließung. Dies kann nützlich sein, wenn ein DOM-Element seine Anzahl speichern muss und Sie keinen Zugriff auf Bibliotheken wie jQuery usw. haben.
Nehmen wir an, Sie haben eine 100 DIV
Elemente. das erste DIV
Element anklicken sollte 1 alarmieren, in ähnlicher Weise das 56th div Element klicken sollten 56.
So warnen, wenn diese Elemente zu schaffen, die Sie normalerweise so etwas wie dieses Diese Warnung
// Assume myElements is a collection of the aforementioned div elements
for (var i = 0; i < 100; ++i) {
myElements[i].onclick = function() {
alert('You clicked on: ' + i);
};
}
tun 99 wird, wie der Zähler ist derzeit 99. Der Wert von i
wird hier nicht beibehalten.
Wenn jedoch eine anonyme Funktion verwendet wird, um das Problem zu lösen,
for (var i = 0; i < 100; ++i) {
(function(count){
myElements[count].onclick = function() {
alert('You clicked on: ' + count);
};
})(i);
}
Hier ist der Wert von i
beibehalten und die richtige Anzahl angezeigt wird.
Dies wird auch als IIFE bezeichnet. Siehe http://benalman.com/news/2010/11/immediately-invoked-function-expression/. –