Как понять фрагмент кода вида (function(){}())
Доброго дня, уважаемые js-гуру
анализируя api одной из библиотек в примере обнаружил конструкцию вида:
(
function(d, s, id){
op1;
op2;
...
}(document, 'script', 'jssdk')
);подскажите, пожалуйста, что вообще происходит здесь, зачем скобки оборачивают определение функции и что за последовательность в конце "(document, 'script', 'jssdk')". и вопрос более общего плана, есть ли инструменты которые помогают понять зашифрованные конструкции подобного вида? |
это шаблон модуль
http://learn.javascript.ru/function-...а-месте |
xtfkpi,
Это не зашифрованная конструкция, это обычная хрень создающая замыкание. В других яп это выглядит типа (let((d documеnt) (s script)(id "foo")) (...делаем что-то...)) Он просто создал локальный неймспейс, в данном случае. только, в данном случае, весьма сомнительно применение этого. Скорей всего, это написано только ради того, чтобы писать короткие имена вместо длинных. |
Это создание анонимной функции и ее последующий вызов.
(function(a, b, c){
return (a+b) * c; // вернет 9
})(1,2,3);
Вся анонимная функция оборачивается в круглые скобки и после, опять же в круглых скобках передаются аргументы. Возможен вызов и без аргументов. Более подробно описано здесь. P.S.: кстати, в названии темы и в приведенном Вами примере ошибка. |
| Часовой пояс GMT +3, время: 21:05. |