Soy nuevo en la programación y estoy tratando de aprender JS con el libro Eloquent Javascript.Pregunta de ejemplo de JavaScript: alcance/cierre léxico - Eloquent Javascript
Hasta aquí todo bien, hasta que llegué a un ejemplo con el siguiente código
function makeAddFunction(amount) {
function add(number) {
return number + amount;
}
return add;
}
var addTwo = makeAddFunction(2);
var addFive = makeAddFunction(5);
show(addTwo(1) + addFive(1));
nota: espectáculo es como alerta, sólo que muestra las variables en la pantalla de una consola JS el tutorial ha integrado.
El autor dice que este es un ejemplo para mostrar cómo el alcance léxico permite sintetizar funciones. Chapter here
Lo que no entiendo es cómo addTwo
y addFive
, que supuestamente son variables, pueden enviar parámetros a las funciones makeAddFunction
y add
, y más específicamente, ¿cómo la función add
sabe que el parámetro de las variables están enviando es el parámetro number
.
Gracias por su ayuda, muchachos!
Probablemente vale la pena leer esto: http://en.wikipedia.org/wiki/Closure_(computer_science) –