Niedawno porównałem bieżącą wersję json2.js z wersją, którą miałem w swoim projekcie i zauważyłem różnicę w sposobie tworzenia i wykonywania wyrażenia funkcji.
Kod używany do zawijania anonimowej funkcji w nawiasach, a następnie wykonywania jej,
(function () {
// code here
})();
ale teraz zawija funkcję wykonywaną automatycznie w nawiasach.
(function () {
// code here
}());
CMS zawiera komentarz w zaakceptowanej odpowiedzi składni zamkniętej funkcji anonimowej Explain JavaScript, że „oba: (function(){})();
i (function(){}());
są prawidłowe”.
Zastanawiałem się, jaka jest różnica? Czy te pierwsze zajmują pamięć, pozostawiając globalną, anonimową funkcję? Gdzie powinien znajdować się nawias?