Время жизни параметров
Выдержка из раздела 7.1 "JavaScript: Полное руководство, 4-е издание":
Обратите внимание, что эти переменные параметра определяются только во время выполнения функции; они не сохраняются после возврата функции.
Это действительно так? Означает ли это, что мне нужно сохранять некоторые параметры в локальных переменных, если я собираюсь использовать их из вложенных функций?
1 ответ
Решение
Вы можете закрыть параметры так же, как и с любой другой локальной переменной, например:
function test(v1) {
return function() {
alert(v1);
}
}
var f = test("hello");
f();
Это только потому, что возвращаемая функция закрывает переменные в своей лексической области видимости. В обычном случае, да, это правда, что параметры являются локальными для функции и не сохраняются после возврата из функции.