Los cierres de JavaScript
las variables JavaScript pueden ser variables locales o globales.
Las variables privadas se pueden utilizar de cierre.
Las variables globales
La función puede acceder a las variables definidas por las funciones internas, tales como ?:
La función también se puede acceder fuera de las variables de la función definida, tales como:
Un ejemplo de la parte posterior, a es una variable global.
En la página web pertenecen al objeto global ventana variable.
Las variables globales se pueden utilizar en todas las secuencias de comandos en la página.
En el primer caso, a es una variable local.
Las variables locales sólo se pueden utilizar para definir su funcionamiento interno. Por otra función o código del guión no está disponible.
Incluso las variables globales y locales del mismo nombre, también son dos variables diferentes. Modificar uno, que no afectará el valor de la otra.
Si no se declara una variable mediante la palabra clave var, entonces es una variable global, a pesar de que se define dentro de la función. |
ciclo de vida variable
Ámbito de las variables globales son globales, es decir, durante todo el programa JavaScript, las variables globales están en todas partes.
En la variable declarada dentro de una función, sólo funcionan dentro de la función. Estas variables son locales, de ámbito local; parámetro de la función es localizada, sólo dentro del trabajo de la función.
dilema contador
Si quieres imaginar a algunas estadísticas numéricas, y los contadores están disponibles en todas las funciones.
Se pueden usar variables globales, función establece el contador se incrementa:
Ejemplos
la función add () {
contador + = 1;
}
add ();
add ();
add ();
// Counter es ahora 3
Trate »
El cambio de valor del contador se produjo en la implementación de la función add ().
Pero la pregunta es, cualquier script de la página se puede cambiar el contador, incluso si no hay una llamada para añadir la función ().
Si declaro una función dentro del mostrador, si no llamar a la función no modificará el valor del contador:
Ejemplos
var contador = 0;
contador + = 1;
}
add ();
add ();
add ();
// La intención es que la salida 3, pero no, la salida es 1!
Trate »
El código de seguridad no va a salir bien, cada vez que llamo para añadir la función (), el contador se pone a 1.
la función JavaScript en línea puede resolver este problema.
funciones anidadas de JavaScript
Todas las funciones pueden acceder a las variables globales.
De hecho, en JavaScript, todas las funciones pueden acceder a ellos en el suelo del ámbito de aplicación.
JavaScript soporta funciones anidadas. La función anidada puede acceder a las variables en función de la capa.
En este ejemplo, la función anidada más () puede acceder a la variable contador de la función de los padres:
Ejemplos
var contador = 0;
la función más () {contador + = 1;}
PLUS ();
contador de retorno;
}
Trate »
Si somos capaces de acceder a la función más exterior (), por lo que podemos hacer frente a la difícil situación del contador.
También tenemos que garantizar que contador = 0 sólo una vez.
Necesitamos cierre.
Los cierres de JavaScript
Recuerde que las llamadas a la función en sí hacer? Esta función hará?
Ejemplos
var contador = 0;
devolver la función) {return contador + = 1;} (
}) ();
add ();
add ();
add ();
3 // contador
Trate »
Ejemplos de analítica
Añadir la variable de palabra indica el valor de retorno de la función se llama a sí mismo.
Función de auto-llamada se realiza sólo una vez. Ajustar el contador a cero. Y volver a la expresión de función.
añadir variable como una función de uso. La gran parte es que se puede acceder en el alcance del contador capa de función.
Esto se conoce como cierres de JavaScript. Tiene una variable privada de modo que la función se hace posible.
Contador de que el ámbito de protección de una función anónima sólo puede ser modificada por el método add.
Los cierres son accesibles en una función variable de alcance dentro de una función, incluso si la función de la capa ha sido cerrado. |