#javascript
(function(a){ alert(a); }(1)); (function (a) { alert(a); })(1); В чем отличие этих функций? Или вот из примера Стефанова: var result = (function () { return 2 + 2; }()); (function () { alert(‘watch out!’); })();
Ответы
Ответ 1
Разницы, в общем-то, нет. Дуглас Крокфорд посчитал что запись: (function () { //body }()); Является правильной, а нотацию: (function () { //body })(); Неправильной и пренебрежительно называет её "собачьи яйца" (dog balls). Поэтому используйте ту, что больше нравится (я, к примеру, согласен с Дугласом, хотя второй вариант ничуть не раздражает). Например в Perl вообще слоганом предписано что всё должно иметь несколько путей нотации. Чем JS хуже? :)Ответ 2
Исправленный код for (var i = 0; i < 4; i++) { (function(i) {setTimeout(() => console.log(i), 100)}(i)) } Не работает ((i)=>setTimeout(() => console.log(i), 100)(i)) Работает ((i)=>setTimeout(() => console.log(i), 100))(i)
Комментариев нет:
Отправить комментарий