Día 19
Closure
JavaScript permite escribir una función dentro de una función externa. Podemos escribir tantas funciones internas como queramos. Si la función interna accede a las variables de la función externa entonces se llama closure (clausura).
function outerFunction() {
let count = 0;
function innerFunction() {
count++;
return count;
}
return innerFunction;
}
const innerFunc = outerFunction();
console.log(innerFunc());
console.log(innerFunc());
console.log(innerFunc());
Veamos más ejemplos de funciones internas
function outerFunction() {
let count = 0;
function plusOne() {
count++;
return count;
}
function minusOne() {
count--;
return count;
}
return {
plusOne: plusOne(),
minusOne: minusOne(),
};
}
const innerFuncs = outerFunction();
console.log(innerFuncs.plusOne);
console.log(innerFuncs.minusOne);
🌕 Estás haciendo progresos. Mantén tu ritmo, sigue con el buen trabajo. Ahora haz algunos ejercicios para tu cerebro y para tus músculos.
Ejercicios
Ejercicios: Nivel 1
- Crear una closure que tenga una función interna
Ejercicios: Nivel 2
- Crear una closure que tenga tres funciones internas
Ejercicios: Nivel 3
- Crear una función de salida de personAccount. Tiene variables internas de nombre, apellido, ingresos y gastos. Tiene las funciones internas totalIncome, totalExpense, accountInfo,addIncome, addExpense y accountBalance. Los ingresos son un conjunto de ingresos y su descripción y los gastos son también un conjunto de gastos con su descripción.
🎉 ¡FELICITACIONES! 🎉