Las funciones anónimas pueden garantizar efectivamente que JavaScript esté escrito en la página sin hacer que las variables globales se contaminen.
Esto funciona muy bien y es hermoso al agregar JavaScript a una página que no es muy familiar.
1. ¿Qué es una función anónima?
Generalmente hay tres formas de definir una función en JavaScript:
Declaración de palabras clave de función:
función fnmethodname (x) {alerta (x);}
FUNCIÓN LITERALES:
var fnmethodName = function (x) {alert (x);}
Funcion () Constructor:
var fnmethodName = nueva función ('x', 'alerta (x);')
Los tres métodos anteriores definen la misma función de método fnmethodName.
El primero es el método más utilizado. Los dos últimos son para copiar una función al nombre variable fnmethodName, y esta función no tiene nombre, es decir, una función anónima.
De hecho, muchos idiomas tienen funciones anónimas.
2. La diferencia entre los literales de función y los constructores de funciones ()
Aunque la función literal es una función anónima, la sintaxis permite especificar con cualquier nombre de función. Se puede llamar a sí mismo al escribir una función recursiva, pero no se puede hacer usando el constructor de funciones ().
var f = función de función (x) {if (x <= 1) return 1; el más return x*hecho (x-1); };
El constructor de funciones () permite la creación dinámica y la compilación del código JavaScript en tiempo de ejecución. De esta manera, es similar a la función global eval ().
El constructor de funciones () analiza el cuerpo de la función cada vez que se ejecuta y crea un nuevo objeto de función. Por lo tanto, la eficiencia de llamar al constructor de funciones () en un bucle o una función ejecutada con frecuencia es muy baja. Por el contrario, los literales de funciones no se recompilan cada vez que lo encuentran.
Al crear una función con el constructor function (), no sigue el alcance típico, siempre lo ejecuta como una función de nivel superior.
var y = "global";
función constructFunction () {var y = "local"; devolver nueva función ("return y"); // no puede obtener variable local} alert (constructFunction () ()); // La definición de palabras clave "global" y de función tiene sus propias características y son mucho más difíciles de usar que los constructores de function ().
Por lo tanto, esta tecnología generalmente se usa raramente.
La definición de palabras clave de expresión y función de función de función es muy similar.
Teniendo en cuenta la diferencia previa, aunque hay mensajes que dicen que las funciones anónimas literales tienen errores bajo ciertos motores WebKit en OS X 10.4.3,
Pero lo que generalmente llamamos funciones anónimas se refieren a funciones anónimas que usan la forma literal de función.
3. Modo de código de funciones anónimas
Modo de error: no puede funcionar, el navegador informará un error de sintaxis.
function () {alerta (1); } ();
FUNCIONES LITERALES: primero declare un objeto de función y luego ejecutelo.
(function () {alerta (1);}) ();
Expresión preferencial:
(function () {alerta (2);} ());
Operador vacío:
función void () {alerta (3); } () son los mismos. Hedger Wang prefiere el tercer tipo por razones personales, mientras que en aplicaciones reales, veo y uso el primer tipo.
4. Aplicación de funciones anónimas
La primera oración en "Un patrón de módulo de JavaScript" es "Las variables globales son el diablo".
Con la palabra clave VAR, las funciones anónimas pueden garantizar efectivamente que JavaScript esté escrito en la página sin causar contaminación a las variables globales.
Esto funciona muy bien y es hermoso al agregar JavaScript a una página que no es muy familiar.
De hecho, Yui y sus ejemplos correspondientes usan muchas funciones anónimas, y otras bibliotecas de JavaScript también usan muchas de ellas.
La piedra angular de la programación funcional en JavaScript.
Para más detalles, consulte "Escribir Beautiful JavaScript con tecnología de programación funcional" y "Guía para la programación funcional de JavaScript".
La explicación detallada anterior del uso y las ventajas y desventajas de las funciones anónimas en JavaScript es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.