Страницы

Поиск по вопросам

понедельник, 8 октября 2018 г.

Самовызывающиеся функции JavaScript

(function(a){ alert(a); }(1));
(function (a) { alert(a); })(1);
В чем отличие этих функций?
Или вот из примера Стефанова:
var result = (function () { return 2 + 2; }());
(function () { alert(‘watch out!’); })();


Ответ

Разницы, в общем-то, нет. Дуглас Крокфорд посчитал что запись:
(function () { //body }());
Является правильной, а нотацию:
(function () { //body })();
Неправильной и пренебрежительно называет её "собачьи яйца" (dog balls).

Поэтому используйте ту, что больше нравится (я, к примеру, согласен с Дугласом, хотя второй вариант ничуть не раздражает). Например в Perl вообще слоганом предписано что всё должно иметь несколько путей нотации. Чем JS хуже? :)

Комментариев нет:

Отправить комментарий