¿Por qué este código no imprime las variables i y j ?
(function f() { let i = 1; let j = 2; return () => { console.log(i); console.log(j); } })()Lo sé, lo sé... este código sí, funciona:
let f = () => { let i = 1; let j = 2; return () => { console.log(i); console.log(j); } } f()();Sí, el último código funciona, pero quiero saber por qué no funciona el primer código.
Muchas gracias
Está devolviendo una función ( return () => {} ) de la función pero no la está llamando. Simplemente podría log los valores en la función sin devolver una nueva función.
(function f() { let i = 1; let j = 2; console.log(i); console.log(j); })();O llamarlo así.
(function f() { let i = 1; let j = 2; return () => { console.log(i); console.log(j); } })()();