Funkcje samowykonawcze [duplikat]
Możliwy duplikat:
Różnica między (function () {}) (); and function () {} ();
Staram się trochę lepiej zrozumieć niektóre funkcje JavaScript. WThe Definitive JavaScript
mówi, że funkcje samowykonujące powinny mieć nawiasy okrągłe w taki sposób:
var obj = (function() {
var value = 0;
return {
increment: function(inc) {
value += typeof inc === "number" ? inc : 1;
},
getValue: function() {
return value;
}
}
})();
ale wJavaScript - The Good Parts
tam, gdzie pochodzi ten przykład, ma powyższą funkcję samowykonywania bez okrągłych nawiasów, tak jak poniżej:
var obj = function() {
var value = 0;
return {
increment: function(inc) {
value += typeof inc === "number" ? inc : 1;
},
getValue: function() {
return value;
}
}
}();
Oba te przykłady działają dla mnie, ale chciałem zapytać, czy były jakieś różnice w funkcjonalności, o których powinienem wiedzieć. Mam nadzieję, że to nie jest zbyt trywialne. Chciałem się tylko upewnić.
Wielkie dzięki.
Edytować:
Jak zauważył Rob W, jest jeszcze jeden wątek na ten temat.To doskonały blog dotyczący tego problemu który był powiązany z innym postem.