Итак, я новичок в программировании, и я пытаюсь изучить JS с помощью книги Eloquent Javascript.
До сих пор так хорошо, пока я не пришел к примеру со следующим кодом
function makeAddFunction(amount) {
function add(number) {
return number + amount;
}
return add;
}
var addTwo = makeAddFunction(2);
var addFive = makeAddFunction(5);
show(addTwo(1) + addFive(1));
note: show похоже на alert, только он показывает переменные на экране консоли JS, в которую встроено учебное пособие.
Автор говорит, что это пример, показывающий, как лексическое охват позволяет синтезировать функции. Глава здесь
Я не понимаю, как addTwo
и addFive
, которые предположительно являются переменными, могут отправлять параметры в функции makeAddFunction
и add
, а точнее, как функция add
знает что параметр, который посылают переменные, является параметром number
.
Спасибо за помощь, ребята!