Знам, че това е глупаво, но има някаква разлика между това:
(function() {
var foo = 'bar';
})();
и този?
(function() {
var foo = 'bar';
}());
JSLint ни казва да Move the invocation into the parens that contain the function
, но не виждам необходимост.
Редактиране: Отговорите са твърде готини. ~function
, алтернативата JSHint заедно с предпочитанието на jQuery за (/***/)();
и обяснението на Крокфорд! Мислех, че просто ще получа отговор от типа „те са едно и също нещо“.
Вие решавате кой е най-добрият чрез гласуване „за“ и аз го отбелязвам.
dog balls
връща резултата извън първия набор от скоби, докато одобрената от Crockford версия го връща вътре. Това рядко е значително, но е разлика. - person Okonomiyaki3000   schedule 26.01.2016foo = (/***/)();
иfoo = (/***/());
могат да се компилират до един и същ байт код. Помислете как(a + b) + (c + d)
ще се компилира до същото катоa + (b + c) + d
. - person Camilo Martin   schedule 26.01.2016foo = (/***/)();
иfoo = (/***/());
са еднакви, но(foo = /***/)();
и(foo = /***/)();
не са. И да, това е педантично. Вероятно никога няма много добра причина да направите това. - person Okonomiyaki3000   schedule 29.01.2016(foo = /***/)();
и(foo = /***/());
- person Okonomiyaki3000   schedule 09.02.2016