He visto programadores asignar eventos oyentes dentro de bucles, utilizando el contador. Creo que esta es la sintaxis:Explique los cierres o enlace del contador de bucles al alcance de la función
for(var i=0; i < someArray.length; i++){
someArray[i].onclick = (function(i){/* Some code using i */})(i);
}
Podría alguien explicar la lógica detrás de esto, y esta sintaxis extraña, nunca he visto esto:
(function(i))(i);
Muchas gracias por su tiempo y paciencia.
Esto técnicamente no implica el cierre. Aunque no estoy del todo seguro de lo bueno que es; esa función interna se ejecutará inmediatamente, y a menos que devuelva otra función, el onclick se establecerá en algo realmente extraño. – cHao
@cHao ya que esto, llamada de función anónima inmediata, se asigna a onlick, debe devolver una función, por lo que la función devuelta es un cierre con la variable "i" en el entorno circundante. – jcubic
@jcubic: * Si el código está configurando un manejador de eventos DOM *, debe devolver una función * si funciona correctamente *. No hay suficiente código aquí para justificar cualquiera de las suposiciones. – cHao