2013-04-19 3 views
6
; (function ($, undefined) 
{ 

    // all the variables and functions of the js document 

})(jQuery); 

Я видел это дважды сейчас в файлах jquery/javascript для сценария масштабирования. Я не понимаю, что это такое. Я не могу показаться, что это Google, я не помню, чтобы натолкнуться на это на tizag или w3schools, а недавно изучая jquery и js.

Нет ничего до или после этого кода (кроме некоторых комментариев). Поэтому я совершенно потерял то, что (function())(jQuery); есть или делает.

+1

Довольно много все будет ясно после прочтения этого: http://james.padolsey.com/javascript/iife-argument-madness/ – romainberger

ответ

6
(function ($, undefined) 
{ 

    // all the variables and functions of the js document 

})(jQuery); 

вызывает блок кода, обеспечивающий, что внутри

  • $ могут использоваться для обозначения jQuery
  • undefined является undefined

и что любой Minifier может изменить undefined на более короткий метка.

Начальная ; гарантирует, что вы можете объединить этот файл с другой: без этого, вы бы ошибки выполняющейся в concatened файл, если один раз, прежде чем что-то вроде

(function(){ 

})() 
3

Это способ гарантировать, что $ действительно является объектом jQuery и гарантирует, что любые локальные переменные и методы находятся в частной области, то есть не загрязняют t это глобальное пространство имен.

Это анонимная функция самозапуска, с параметром, переданным как jQuery, что означает, что $ будет объектом jQuery.

Будучи объявленным внутри функции означает, что внутренние переменные и методы не будут видны за ее пределами.

+4

. Кроме того, в начале двоеточия - это только мера безопасности, если этот код должен быть включен после того, как какой-либо другой JS без правильное форматирование. –

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