#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)
Комментариев нет:
Отправить комментарий