Js nueva y amplia comprensión de los cierres

generalizada:

La función es cierres

Limitar:

Después de la terminación de la llamada a la función, el espacio de memoria no se puede borrar GC, forman un espacio cerrado de memoria, llamada de cierre

Cierre Común Ejemplos Ejemplo:

function bar (){
    return 1;
}
let a = bar()

Tras el regreso a los tipos de llamadas básicas 1 bar, asignados a la variable a, la llamada de función generada en este bar de tiempo será basura recogida espacio de memoria y por lo tanto no se genera el cierre.


function bar (){
    return {};
}

let a = bar()

Después de la llamada devuelve una referencia a la barra de tipo {}, se asigna a una variable, una llamada de función generado por la barra en este momento el espacio de memoria dentro de la {} es una variable que se utiliza, un punto es hacer frente a este espacio de memoria heap {} Por lo tanto, la memoria no se puede recuperar GC basura retira, formando así una memoria espacio cerrado, producen cierres.

function bar (){
    let a = 1;
    function fn (){
        return a;
    }
    
    return fn();
}

let a = bar()

Después de llamar a la barra, bar en el interior y luego llamar a la función de la función fn, la función devuelve un fn, fn que depende de la barra de funciones en una variable, por lo que el recolector de basura no creará memoria de la barra de espacio virtuoso, y por lo tanto producir cerca empaquetar.

Publicado 18 artículos originales · ganado elogios 0 · Vistas 258

Supongo que te gusta

Origin blog.csdn.net/Joey_Tribiani/article/details/104488605
Recomendado
Clasificación