WindWalker
28.04.2007, 01:05
У кого-нибудь есть достаточно разумное объяснение, как это работает?
function test() {
var a = 2;
_root.btn.onRelease = function() {
trace (a);
}
}
test();
С тех пор, как я впервые увидел такую конструкцию, я мучаюсь в догадках: как локальная переменная может существовать вне функции?
Ну ладно бы мы просто могли испльзовать ту же самую переменную - в том же Паскале вложенные функции могут использовать локальные переменные родительской функции.
Но тут ещё и сохраняется значение после завершения функции!
Ведь onRelease() у нас будет выполнен уже после того, как test() закончит выполнение.
Так где "сидит" это значение?
function test() {
var a = 2;
_root.btn.onRelease = function() {
trace (a);
}
}
test();
С тех пор, как я впервые увидел такую конструкцию, я мучаюсь в догадках: как локальная переменная может существовать вне функции?
Ну ладно бы мы просто могли испльзовать ту же самую переменную - в том же Паскале вложенные функции могут использовать локальные переменные родительской функции.
Но тут ещё и сохраняется значение после завершения функции!
Ведь onRelease() у нас будет выполнен уже после того, как test() закончит выполнение.
Так где "сидит" это значение?