Как понять фрагмент кода вида (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, время: 07:44. |