Это действительно? Да. Это работает? Да. Имеет ли это какой-то смысл? Нет.
Тайм-аут выполняется только один раз.Закрытие обязательно вызывается только после истечения времени ожидания.Теперь, если бы вы использовали интервал , это имело бы смысл.
Метод работает, потому что компилятор заранее определяет все эти локальные переменные, делая их автоматически доступными.По сути, он делает что-то вроде этого:
var clearId:int;
clearId = setInterval(function():void
{
clearInterval(clearId);
}, 2000);