JS, lo que es el cierre? Los cierres Cuáles son los beneficios?

Creo que la Internet tiene una gran cantidad de cierre de explicar, después de todo, esta cosa ojos del espectador sabios ven la sabiduría, para mí, resumió las dos características:

1. función anidada funciones, funciones internas y variables pueden hacer referencia a un parámetros de función externos

función aaa () {
     var a = 5 ; 
    función bbb () { 
        alerta (a) 
    } 

    retorno bbb 
} 
var c = aaa (); 
C();

 

2. Los parámetros y variables que no se recuperarán recolección de basura

JS mecanismo de recolección de basura en 

  la prueba de función () { 
        var a = 1. ; 
        Alert (a) 
  } 
  Test (); // realizar esta función, la función no existe dentro de una,

 

Echemos un vistazo a los beneficios de los cierres de tracción:

1. quieren una presencia variable a largo plazo en la memoria de ellos (generalmente función se completa, las variables y parámetros serán destruidos)

2. Evitar la contaminación de las variables globales

función AAA () {
        var A = 1. ; 
       A ++ ; 
       Alert (A) 
 } 

AAA (); // 2 
AAA (); // 2 
AAA (); // 2 
por encima de función lleva a cabo sin tener en cuenta varias veces, una ventana emergente 2 es decir, si queremos expulsar 2/ 3 / 4 como resultado una? Necesitamos usar cierres

 

  función AAA () {
         var A = 1. ;
         retorno function () { 
            A ++ ; 
            Alert (A) 
        } 
    } 

    var BBB = AAA (); 
    BBB (); // 2 
    BBB (); // . 3 
    BBB (); // 4 

    // escritura función expresión 
    var AAA = (function () {
         var a = 1. ;
         retorno function () { 
            un ++ ; 
            Alert (a) 
        }
    }) () Por 

    aaa () // 2 por 
    aaa () // 3 por 
    aaa () // 4

 

Supongo que te gusta

Origin www.cnblogs.com/0955xf/p/12634418.html
Recomendado
Clasificación