Recentemente ho confrontato la versione corrente di json2.js con la versione che avevo nel mio progetto e ho notato una differenza nel modo in cui l'espressione della funzione è stata creata ed eseguita autonomamente.Posizione della parentesi per l'esecuzione automatica di funzioni JavaScript anonime?
Il codice utilizzato per avvolgere una funzione anonima tra parentesi e poi eseguirlo,
(function() {
// code here
})();
ma ora avvolge la funzione di auto-eseguito in parentesi.
(function() {
// code here
}());
C'è un commento di CMS nella risposta accettato di Explain JavaScript’s encapsulated anonymous function syntax che “entrambe le cose:. (function(){})();
e (function(){}());
sono validi”
mi chiedevo qual è la differenza? Il primo occupa la memoria abbandonando una funzione globale anonima? Dove dovrebbe essere localizzata la parentesi?
Vedere anche [Differenza tra (function() {})(); e function() {}();] (http://stackoverflow.com/q/423228/1048572) e [Esiste una differenza tra (function() {...}()); e (function() {...})();?] (http://stackoverflow.com/q/3783007/1048572) – Bergi
correlati: [Sintassi di chiamata di funzione immediata] (http://stackoverflow.com/q/939386/1048572) (in JSLint) – Bergi
Leggi anche [lo scopo di questo costrutto] (http://stackoverflow.com/q/592396/1048572), oppure controlla un ([tecnico] (http://stackoverflow.com/ q/4212149/1048572)) [spiegazione] (http://stackoverflow.com/q/8228281/1048572) (anche [qui] (http://stackoverflow.com/a/441498/1048572)). Perchè le parentesi sono necessarie, vedi [questa domanda] (http://stackoverflow.com/q/1634268/1048572). – Bergi