1) В JavaScript функции могут получать доступ к переменным, определенным выше них.
2) Функции могут также получать доступ к переменным определенным во внешней родительской функции, даже если та уже отработала при своем запуске,
то есть эти переменные и их значения просто продолжают существовать, поскольку функции - это просто объекты {}, поэтому они сохраняют в себе значения переменных, даже, если не работают в данный момент.
3) Поэтому функции могут возвращать через return внутренние функции, которые потом можно запускать отдельно.
4) Внутренние функции могут обновлять значения локальных переменных, определенных во внешней функции.
function makeSandwich() {
var magicIngredient = "peanut butter";
function make(filling) {
return magicIngredient + " and " + filling;
}
return make("jelly");
}
makeSandwich(); // "peanut butter and jelly"
5) Функция может возвращать через return анонимную функцию, скрывая и сохраняя в ней локальные переменные и их значения.
function sandwichMaker(magicIngredient) {
var a = 1;
return function(filling) {
return magicIngredient + " and " + filling + a;
};
}
Комментариев нет:
Отправить комментарий