El área donde más a menudo me resulta útil es en las funciones de devolución de llamada. Esta notación también se puede usar en casos donde necesite incluir una variable en una función de devolución de llamada, pero necesita que el estado de la variable no se vea afectado por lo que sucede fuera de la función.
var someVal = 1;
setTimeout((function(one) {
return function() {
alert(one); // alerts a 1 even 10 seconds after someVal++;
}
})(someVal), 10000);
someVal++; // the value in the setTimeout will remain the same as it is locked inside.
En este contexto, setTimeout toma una función que no toma argumentos. Entonces la pregunta de cómo pasar un valor a esa función se responde creando una función que toma un argumento que devuelve una función que toma 0 argumentos.
Sugiero a cualquiera que quiera aprender más sobre el poder de esta notación para jugar con ella en la consola Firebug JavaScript. Una vez que te hayas acostumbrado a este concepto, comenzarás a ver las áreas en las que se puede utilizar este poderoso concepto.
@delnan: Tienes razón, pero creo que es solo una de esas preguntas que es un poco difícil de buscar. Aunque apostaría que si una persona busca * "Qué es esta sintaxis en javascript" *, encontrará algunas respuestas. : o) – user113716
@delnan: creo que podría estar en el sitio web equivocado. Esto es Stack Overflow, donde las personas acuden en busca de ayuda. ¿Estás perdido? Tal vez estás en el sitio web equivocado, tal vez? – jmort253
@delnan, asumo que al hacer esta pregunta también estoy aprendiendo, pero no al nivel que te gusta o que consideras apropiado. Intenté buscarlo, pero no obtuve la respuesta. y Por eso, le agradezco a @patrick por tomarse el tiempo de responderme. – Oliver