Fuera de mi experiencia personal, con excepción de usar funciones anónimas para inducir un ámbito, también lo han utilizado en fines de bucles de cierre. Esto puede ser útil cuando un elemento DOM necesita almacenar su conteo y no tiene acceso a bibliotecas como jQuery, etc.
Digamos que tiene un 100 DIV
elementos. Al hacer clic en el primer elemento de DIV
debería alertar a 1, al hacer clic de manera similar al elemento div 56a debe alertar 56.
Por eso, cuando la creación de estos elementos, que normalmente haces algo como esto
// 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);
};
}
Esto alertará a 99, ya que el contador actualmente es 99. El valor de i
no se mantiene aquí.
Sin embargo, cuando una función anónima se utiliza para abordar el problema,
for (var i = 0; i < 100; ++i) {
(function(count){
myElements[count].onclick = function() {
alert('You clicked on: ' + count);
};
})(i);
}
Aquí el valor de i
se mantiene y se muestra el número correcto.
Esto también se llama un IIFE. Ver http://benalman.com/news/2010/11/immediately-invoked-function-expression/. –