Сергей Протько: композиция - вполне функциональное явление. Каррирование для описания данного явления более частное и потому может быть более точное понятие. Реализация каррирования, равно как и композиции получается через передачу в функцию указателя на другую функцию. Впрочем, я лично прекрасно понял, что вы имеете в виду и прошу прощения, что воспользовался не очень популярной терминологией.
Антон: потому что jQuery-метод "on" принимает в себя вторым параметром именно функцию-обработчик события. В момент "подписки" (subscribe) обработчик еще не выполняется, так что ему нужно дождаться, когда событие будет "опубликовано" (publish), после чего он, собственно, и выполнит функцию, которая была сгенерирована нами в showOnly. По-хорошему эту функцию надо бы назвать "createShowOnlyFunction". Evt - это аргумент, который принимает функция-обработчик события в jQuery-методе "on". Это объект клиентского события, на которое вы подписались, из него можно узнать кучу интересных вещей. Например, evt.ctrlKey скажет, зажимал ли пользователь ctrl, когда вызвал событие. А evt.preventDefault() позволит отменить обработчик события "по умолчанию" (например, пользователь не перейдет по ссылке, если кликнул по ней).
Сергей Протько: можете назвать это "аггрегированием" или "композицией", но сама реализация предполагает передачу объекта по ссылке, что, собственно, и называется делегированием.
Сергей Протько: ну, делегирование не означат отдельную структуру, и дотнет тут вообще ни при чем. Речь о делегировании как о композиции методов двух объектов.
Очень сложно ответить на вопрос "есть ли тут ошибки", когда непонятно, что вы вообще пытались сделать. Что касается правил стилей для селектора #m112:hover, они, разумеется, не будут работать для совершенно другого селектора #m11:hover
Я так полагаю, вас интересует программа, которая могла бы менять собственный код в процессе выполнения. Но к полиморфизму, как к одному из принципов объектно-ориентированного программирования, это не имеет никакого отношения. Вас интересует самообучающаяся программа, но процессы обучения программ разнятся от области применения к области применения. Пока вы не объясните, что именно вы хотите сделать - вам никто не сможет помочь. Максимум - могу подсказать вам погуглить ключевые слова из предыдущего моего комментария.
Как правило, в вопросе стоит указать, что именно вы уже сделали, в противном случае ресурс, созданный для решения проблем, превращается в "домашние задания онлайн".
Боюсь, тэг "полиморфизм" здесь вряд ли уместен. Он означает несколько другое в программировании. Что же касается самообучаемости... вы не могли бы подробнее рассказать про задачу? Возможно, вас интересует машинное обучение или нейронные сети, но вопрос ваш задан несколько странно.
@maximus007 не решает. click(fun) это короткая версия on("click", fun). Послушайте умного человека, почитайте лучше про события в js чем плясать с бубном вокруг проблемы.
Так все и было до недавнего времени, когда мощности современных домашних компьютеров и ресурсы, которые они предоставляли браузерам были достаточно маленькими. А теперь у нас уже есть offline-web-приложения, web-workers (полноценная многопоточность в браузере), без пят и минут принятый концепт реляционных баз данных в браузере (и внедренный всеми крупными игроками), уже давно живущие nosql-базы; основной язык фронтовой разработки (JS) содержит вышеназванные парадигмы ФП, СОП, ООП и прочая там. Конечно, по чистоте синтаксиса до Scala или F# не дотянет, но все-таки...
Конечно же, сферический фронтенд в вакууме никогда в жизни не столкнется с требованием отрисовать 10к таблиц в восьмом осле (задачка тоже лежит в области математики :D) или написать стековый автомат - но прикол в том, что и на бэке то же самое. Сейчас для подавляющего большинства программистов что на фронте, что на бэке, требуется знание пяти-шести технологий. Важно скорее не следить за ВСЕМИ новинками, но уметь отличить жемчужину в грязи.
ИМХО.
@Aliance, регулярки сработают однозначно быстрее вашего кода, как и любой конечный автомат, впрочем. То, что регулярка из ответа @maxaon может как-то багануть - это очень грустно, но явно не проблема регулярок =)
Пожалуйста, не делайте так НИКОГДА. Я понимаю, вебформы, все дела, но одно указание в веб.конфиге - и я смогу записать в поле что-нибудь типа DROP DATABASE--. По-хорошему, надо, конечно, юзать дата-биндинг, ОРМ вместо прямого доступа к банке и так далее...
Читайте вот здесь, например. msdn.microsoft.com/en-us/library/aa984209(v=vs.71).aspx
Речь, конечно же, шла о браузерах. LocalStorage поддерживается только в версиях осла 9+, если целевая аудитория вашего сайта сидит на более старых браузерах, стоит думать о другом.
Впрочем, в сети точно есть обертки над LocalStorage, кроссбраузерные, можно пользоваться ими.
@sortarage многочисленные правки выше =). Кстати, если сайт работает на чем-то более современном, можно открепиться от печенек и работать с LocalStorage.
Вы же понимаете, что события не выполняются? Выполняются обработчики событий. Вам нужно создать обработчик некоего события? В таком случае, какого события? Или вам нужно создать кастомное событие и повесить на него обработчик?