[Ликбез]

Форма входа
Логин:
Пароль:

Меню сайта


Скрипты и коды для юкоз - Форум аццкого кодера » Скрипты JavaScript, Примеры на JavaScript, полезные исходники, подобное » Про .noconflict()

Про .noconflict()
[1] likbezz [23.01.2013, 17:42]
Про .noconflict(): стоит упомянуть, что с момента употребления этой функции объект $ возвращается в первоначально определенное состояние. То есть, по-русски, если сначала вы загрузили Prototype, a потом jQuery, jQuery.noconflict() снова сделает объект $ прототиповской функцией. Это не всегда может быть удобно для дополнительного «навешивания» скриптов, полагающихся на jQuery в форме $. Посему (и не только поэтому), свои jQ-скрипты стоит писать следующим образом:
Код
// начинаем файл нашего скрипта
(function($) // анонимная функция-обертка с параметром
{
$(".mystuff").do(things) // наши jQuery-выкрутасы, за состояние $ можно не бояться
}
)(jQuery) // и вот почему
// заканчиваем файл нашего скрипта


Первой и последней строчками мы оборачиваем наш скрипт в анонимную функцию, принимающую параметр $. В последней строке мы вызываем только что созданную функцию и в качестве этого параметра передаем объект jQuery. В итоге .noconflict() нам не страшен (его и можно, кстати, употребить в первой строчке нашего скрипта, перед объявлением функции). Заодно работа скрипта внутри анонимной функции, вызываемой немедленно после создания, не оставит после себя мусора в виде локальных переменных — если их объявлять с ключевым словом var, они исчезнут из памяти сразу после исчезновения контекста функции (то есть в простейших случаях сразу после окончания ее работы, в случаях замыканий при обработке событий — после снятия обработчиков событий). Практическая польза кажется небольшой и неочевидной, пока вы используете только jQuery, но стоит взяться за большой проект с несколькими библиотеками.. сэкономите на Солпадеине, вобщем.

© rimmer333


Полная версия сайта