Destacado
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Javascript | Closures 0.1
Los closures son uno de los conceptos fundamentales en javascript y entenderlos nos permitirá escribir código más flexible y eficiente.
¿Qué es un closure?
Un closure es una función que recuerda el scope léxico en el que fue definida, incluso cuando se ejecuta fuera de ese scope.
Suena sencillo, ¿verdad? ¡Vamos por partes!
¿Qué es el scope?
El scope o contexto define el alcance y visibilidad de las variables, funciones y otros recursos dentro de nuestro código.
Existen 3 tipos de scopes: el scope global, el scope de función y el scope de bloque.
Scope Global:
- Las variables declaradas fuera de cualquier función o bloque tienen un scope global.
- Son visibles desde cualquier parte del código.
Scope de Función:
- Las variables declaradas dentro de una función solo son accesibles dentro de esa misma función.
- No son visibles desde fuera de la función.
Scope de Bloque:
- Las variables declaradas con let o const dentro de un bloque solo son visibles dentro de ese bloque.
¿Que es el scope léxico?
El scope léxico (o estático) hace referencia al lugar en el código donde se declara una variable o función. Esto determina qué variables estarán disponibles en tiempo de ejecución.
Dicho de otra forma, una función "recuerda" el contexto donde fue creada, sin importar dónde se ejecute después.
Ejemplo de Closure:
- La función anónima retornada, es un closure, que tiene acceso a la variable value definida dentro del scope de tick.
- Cuando tick es invocada, devuelve una referencia a la función anónima.
- La variable ticker mantiene una referencia a la función anónima y al scope (scope léxico) en la cual fue creada, lo que le permite acceder a value y modificar su valor.
- Nota que incluso después de que tick ha terminado de ejecutarse, es posible modificar el valor de value invocando la función anónima dentro de ticker.
¿Para qué sirven los closures?
Los closures son herramientas poderosas que permiten:
- Encapsular datos y evitar la modificación directa de variables.
- Crear funciones privadas en JavaScript.
- Mantener estados internos sin depender de variables globales.
Sin embargo, un mal uso de los closures puede generar problemas de memoria o agregar complejidad innecesaria.
¡Úsalos sabiamente!
Conclusión.
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Entradas populares
Node | Debug nestjs app en vscode
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Typescript | keyof
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Comentarios