Tengo curiosidad por cómo se eliminó el cierre en Javascript.
Conozco la definición de cierre. Es una variable a la que hace referencia la función secundaria dentro de una función principal cuyo ciclo de vida ha terminado.
Aquí está el ejemplo a continuación:
let inner; function outerFunction() { let outerValue = 'Mike' function innerFunction() { let message = `${outerValue} is a developer` console.log(message) // Mike is a developer } inner = innerFunction; return } outerFunction() inner()Como puede ver, cuando se llama a la función externa , finalmente se elimina de la pila de llamadas debido a la declaración de devolución.
Después de la función externa , dentro de la cual se llama la función interna asignada a la variable.
innerFunction muestra el mensaje 'Mike es un desarrollador'. Sin embargo no regresa.
En este caso, ¿ cuándo se elimina la función interna de la pila de llamadas?
La función no devuelve ni contiene una variable de la función externa . Si esto permanece en la memoria, entonces debe ser un gran desperdicio.
¿O también se elimina la función interna cuando regresa la función externa?