Возможный дубликат:
Как работают блокировки JavaScript?
Я играл с Google Closure Compiler, помещая случайный код, чтобы посмотреть, что он будет делать.
Он переписал одну из моих функций, чтобы выглядеть примерно так:
(function(msg) { console.log(msg); })("Hello World!");
Если окажется, что "Hello World"
- это аргумент, переданный как msg
для анонимной функции, предшествующей ему. Я смотрел на него на мгновение и думал, что видел что-то подобное в плагинах jQuery, которые выглядят примерно так:
(function( $ ) {
...
})(jQuery);
Что теперь имеет для меня больше смысла, в контексте конфликтов с $
. Но какова основная причина или цель передачи аргументов в анонимную функцию вроде этого? Почему бы вам просто не определить аргументы в качестве переменных внутри функции? Есть ли преимущество в производительности или гибкости при написании таких функций?