Hay varias formas de llamar a la función JS:
(1) Llame a la función nombrada directamente
La copia del código es la siguiente:
función foo ()
{
}
foo ();
(2) Las funciones anónimas se llaman por referencia
La copia del código es la siguiente:
fooref = function ()
{
}
fooref ();
(3) Llamada de función anónima sin referencia 1
La copia del código es la siguiente:
(función()
{
} ());
(4) Llamada de función anónima sin referencias 2
La copia del código es la siguiente:
(función()
{
}) ();
(5) Llamada de función anónima sin referencias 3
La copia del código es la siguiente:
función vacía ()
{
} ();
La Figura 1.1 y la Figura 1.2 muestran que el proceso de operación de estas dos expresiones es diferente. En la Figura 1.1, el operador forzado se utiliza para habilitar la operación de llamada de función que se ejecutará. En la Figura 1.2, el operador forzado se usa para operar la expresión "Declaración de cantidad directa de función" y devuelve una referencia a la función misma, y luego la referencia de la función se opera a través de la operación de llamada de función "()". La última función anónima anterior llama a la función void () {} (); se usa para llamar a la función e ignorar el valor de retorno. El Void del operador se utiliza para hacer que las expresiones de función que lo sigan realicen operaciones. Si no usamos "void" y operación forzada "()", se puede ejecutar el código:
(1) function () {} () // use '' () "para forzar la llamada
(2) function () {} (); //Usar ";" para ejecutar la declaración
El motor de script pensará que la función () {} es una declaración de función, de modo que no puede pasar la detección de sintaxis, y el código se analiza así:
función(){};();
function () {} se interpreta como una declaración, mientras "();" se interpreta de forma independiente como una línea, por lo tanto, se informará un error de sintaxis. ¿Por qué sabes que es un error causado por "();"? Lo cambiamos al siguiente código:
function () {} (1);
Esto será explicado por el motor como:
fucntion () {};
(1); // expresión de valor único
Por lo tanto, la detección de sintaxis pasó ...