А можно где-то посмотреть пример использования? Не развлечение с foo-bar'ами, а более или менее реальную задачу, в которой потребовался бы такой объект?
Чисто субъективно, почему-то не хочется пользоваться ни Deferred, ни Callbacks в jQuery. На мой взгляд это необоснованное увеличение библиотеки, которая выигрывает у конкурентов как наиболее простой DOM-манипулятор.
Кажется настало время серьезно посмотреть в сторону Prototype
Никакой это не «наиболее простой DOM-манипулятор». Это уже давно весьма универсальная библиотека. На самом деле Deferred и Callbacks — это не так уж много лишнего кода. Если уж говорить о лишнем коде, то хотелось бы иметь версию jQ без поддержки старых браузеров IE 6-7.
О Deferred и говорить нечего: очень часто облегчает жизнь. А Callback — уж если используется в коде самой jQ, почему бы и не вынести «наружу».
Хотите простой DOM-манипулятор, возьмите AtomJS, например.
P.S. Фреймворк действительно клевый. Правда активно использовать еще не доводилось, но по описанию мне нравится. Вот jQuery как-раз не хватает такой модульности, имхо.
Мне кажется, что в вашей статье не хватает живого реального примера странички с такой функциональностью, где требуется этот новый объект. Ваши примеры какие-то слишком академические.
Не спорю. Примеры брал из оф. доков, немного поправив для большей наглядности. Просто «на страничке» пример, скорее всего не придумать. Эта функциональность может потребоваться при написании собственных компонент или виджетов, но не при каких-то элементарных операциях с DOM.
По своему предназначению это тот же MooTools.Class.Events, просто реализован не как примесь, а как делегат (а в этом что-то есть на самом деле). В мощных приложениях (не 200 строк мелкого кода на jQuery, а реально мощных, например игры) или в библиотеках данная функциональность очень полезна. Когда вы захотите сделать свой плагин для JQuery с большим количеством событий — вы сразу поймёте в чём прелесть кода из топика.
Я не совсем согласен с вашим UPD. То, что это часть $.ajax — никто не спорит. Имхо, людей интересует, как можно этот код применить на практике в своём проекте или плагине. А согласно upd можно посчитать, что смысла изучать этот кусок нету, ведь всё равно оно абстрагированно внутри ajax.
Я согласен, что людей должно интересовать, как это применить с пользой для себя (своих проектов). Мой UPD — это, в первую очередь, ответ тем, кто говорит, что разработчики беспричинно утежеляют вес библиотеки, добавляя сомнительные фичеры в код. Вот я и постарался объяснить, эти фичеры добавляют не просто так, как лишний код, а оптимизируют уже существующий код — т.о. вес библиотеки от них не сильно прибавляется, а пользы может оказаться уйма.
Что такое этот новый jQuery.Callbacks Object