Цитата:
Сообщение от wvxvw
При встрече с автором сего шедевра сделайте ему что-нибудь нехорошее, например пните ногой, или плюньте в лицо. Это ж такую редкосную гадость надо было написать... (а еще для таких вещей есть замечательный сайт - govnokod.ru)
Называется это умными словами "анонимная функция присвоеная свойству динамического объекта" - чем это чревато:
- отсутствие нормальной проверки на этапе компиляции.
- такие функции будут создаваться по-новой при каждом выполнении функции-обертки.
- контекст такой функции можно переопределить в рантайме.
- такие функции плохо перевариваются JIT компилятором, если вообще перевариваются.
- судя по названию, ее еще и планировалось передать в качестве обработчика какого-то события, а это добавляет ко всему вышеперечисленному проблемы с очисткой памяти.
|
Ну да, там дальше есть такой код

Код AS3:
loader.addEventListener(Event.COMPLETE, function(e:Event){
var loader:URLLoader = URLLoader(e.target);
var data = JSON.decode(loader.data);
if (data.error) {
options.onError(data.error);
} else if (options.onComplete && data.response) {
options.onComplete(data.response);
}
});
Насколько я понимаю, это замыкание (closure). Возможно это сделано с целью уменьшения количества классов в программе-примере, но это её ни капли не упрощает для новичка в ЭкшнСкрипте. Попробую разобраться как это всё переделать.
Добавлено через 5 минут
Не, ну можете постить, но там весь исходник чата такой, у меня волосы дыбом, но понемногу разбираюсь. Похоже сделано чтобы отпугивать новичков от написания приложений для вконтакта

)) Сам пару месяцев боялся подступиться, смотрел на код, и выключал через 10 минут. Сейчас перешёл в решительное наступление. Что-то начало получаться, методом тыка. Но хочется каждую непонятную ситуацию выяснить, чтобы набраться знаний и опыта. Прежде чем сюда задавать вопрос, прошерстил несколько книг на предмет такой темы, и погуглил, информации нашёл маловато. Даже здесь я уже больше узнал, в этой теме. Спасибо.