El argumento 10 se pasa a la función interna anónima, sin pasar por la función externa. ¿Cuál es el principio aquí?
function aFunc() { let firstNum = 2; return (secondNum) => secondNum * firstNum; } let aVar = aFunc(); console.log(aVar(10));Porque aVar es (secondNum) => secondNum * firstNum donde firstNum y el cierre tiene firstNum = 2 .
function aFunc() { let firstNum = 2; return (secondNum) => secondNum * firstNum; } let aVar = aFunc(); Llamar aFunc() ejecuta la función que crea un cierre alrededor firstNum y devuelve la función de flecha (secondNum) => secondNum * firstNum .
La llamada posterior a aVar(10) llama a esta función de flecha y se calcula y devuelve el resultado de sumar firstNum (2) y secondNum (10).
console.log(aVar(10));