Dos formas de llamada inmediata a la función anónima (función (d) {} ()); y (función (x) {}) (); [duplicar]
Posible duplicado:
¿Son "(function () {}) ()" y "(function () {} ())" funcionalmente iguales en JavaScript?
Mi pregunta teniendo estos caracteres especiales, no pude encontrar una buena respuesta. (¿Alguien sabe como buscar con ellos?)
He visto dos patrones para llamar inmediatamente a funciones anónimas.http://jsfiddle.net/ukqS8/1/
<code>(function(d) { document.write(d*2); })(3); </code>
y
<code>(function(x) { document.write(x*2); }(3)); </code>
La diferencia es donde se coloca (3): dentro o fuera del paréntesis de cierre.
Encontré una buena explicación para el segundo caso aquí:
función javascript vs. (function () {...} ());
que entendi comofunction(x) {...}
crea un objeto de función, (3) se convierte en su argumento, y el adjunto () le dice al intérprete que lo que hay dentro es una declaración.
En el primer caso, parece hacer(function(d) {...})
una declaración que de alguna manera también es una función, y luego se aplica (3) a esta declaración / función.
Entonces, ambos parecen ejecutarse de la misma manera. ¿Hay realmente una diferencia aquí? Ámbito (lo dudo)? ¿Alguna opción es preferible?