Przeczytałem dużo o zamknięciach w JavaScript Co to są szelki dla? czytałem na mozilla.org który mówi zamknięcie powinno być zdefiniowane jakoJavascript Zamknięcie anonimowe
(function(){...})();
ale na http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html, to mówi, że funkcja zamknięcia jest
(function(){...}());
Co za różnica czy ten ostatni jest nie tak? jaki jest cel ostatniego()? Czy wstawiłbyś jakieś parametry? Szukam dobrego odniesienia.
Edit: Ponadto, jest przykładem na Mozilla.org
var makeCounter = function() {
var privateCounter = 0;
function changeBy(val) {
privateCounter += val;
}
return {
increment: function() {
changeBy(1);
},
decrement: function() {
changeBy(-1);
},
value: function() {
return privateCounter;
}
}
};
dlaczego średnik jest potrzebny do tego 'funkcja'? Jeśli trzeba go wywołać natychmiast po deklaracji, a() należy umieścić przed średnikiem końcowym. Ale nie ma.
to nie jest zamknięcie, to funkcja anonimowa. – zerkms
Dokładny duplikat [Jaka jest różnica między wykonywaniem anonimowej funkcji (zwanej też IIFE)] (http://stackoverflow.com/questions/16026909/what-is-the-difference-between-thoseself- exececuting -anonymous-function-aka-iife) – zerkms
możliwy duplikat [(...()) vs. (...)() w javascript closures] (http://stackoverflow.com/questions/8774425/vs-in -javascript-closures) – Quentin