Explica este código JavaScript
Dificultad: Intermedio
const fn = () => {
let x = 20;
const fn2 = () => {
let y = 21;
return x + y
}
return fn2;
}
let res = fn();
console.log(res()) // 🤔🤔
- A.
20 - B.
41 - C.
21 - D.
undefined
Respuesta en el primer comentario.
Top comments (1)
Respuesta
41Para entender este ejemplo en necesario saber el concepto de lexical scope en JavaScript.
El lexical scope permite que una función pueda acceder a un variable que no este en su propio scope.
De esta manera, la función anidada
f2puede acceder sin problema a la variableypero debe salir a buscar a la variablexal scope superior, de esta manera se realiza la operación y podemos regresar el resultado41.