2012-05-08 2 views
5

Я только что загрузил jQuery Кратко бесплатную электронную книгу (here) из Syncfusion и начал просматривать примеры.jQuery Кратко объяснение синтаксиса

Я вижу много такого рода вещи:

<script> (function ($) 
{ 
    $('a').mouseenter(
     function() { alert(this.id); }); 
})(jQuery); 
</script> 

я не уверен, почему автор использует этот синтаксис. Объект $ передается в анонимную функцию? Зачем? А что такое (jQuery) за анонимной функцией?

Это просто способ избежать конфликтов с другими библиотеками? Мне кажется, что эти примеры могут быть написаны гораздо более «лаконично» :)

Спасибо.

ответ

7

Он создает замыкание, где $ === jQuery, даже если $.noConflict() был использован для удаления глобального jQuery $.

Это позволяет вам всегда использовать $, не заботясь о том, является ли пользователь, например. также используя каркас, такой как прототип, который также использует $.

Замыкание также имеет то преимущество, что ваши переменные/функция не является глобальной, если вы явно не сделать их глобальными (не используя var и присоединения функций к window или this объекту)

+0

Всего несколько секунд впереди меня. : / –

4

Да, это сжатый способ чтобы избежать конфликта jQuery с другими библиотеками. Он известен как «закрытие». Другими словами, переменная $ относится к этой функции и может использоваться без вреда вне ее.

Смежные вопросы