Показать сообщение отдельно
Старый 12.05.2010, 21:55
XDiaBLo вне форума Посмотреть профиль Отправить личное сообщение для XDiaBLo Найти все сообщения от XDiaBLo
  № 4  
Ответить с цитированием
XDiaBLo

Регистрация: Mar 2010
Сообщений: 51
Цитата:
Сообщение от 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 минут. Сейчас перешёл в решительное наступление. Что-то начало получаться, методом тыка. Но хочется каждую непонятную ситуацию выяснить, чтобы набраться знаний и опыта. Прежде чем сюда задавать вопрос, прошерстил несколько книг на предмет такой темы, и погуглил, информации нашёл маловато. Даже здесь я уже больше узнал, в этой теме. Спасибо.