|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Дело в том, что функция просто выполняется при вызове, и выполнившись, возвращает результат или меняет чтото вне себя. После того, как она выполнилась, все ее внутренние переменные больше недоступны, точнее их уже нет. Все эти переменные - mclLoader, oLoadListener, и функция onLoadError() существуют лишь до тех пор, пока выполняется loadImg(), потому что это ее внутренние переменные. Они как пассажиры пролетающего вагона - могут разговаривать друг с другом, но Вы, на полустаночке), ни словом с ними не перекинетесь. Пролетая мимо, они Вам могут крикнуть "загрузи картинку и отдай Васе на пятом сиденье", но пока Вы сбегаете за картинкой - ни Васи, ни сиденья.
(из моего поста могло создаться впечатление, что дело во времени, но на самом деле конечно в областях видимости - т.е. нормальная организация подразумевает, что Вася стоит с Вами на полустаночке. Т.е. функция не должна быть внутри другой функции)
Последний раз редактировалось Wolsh; 29.10.2008 в 13:23.
|