Ich habe kürzlich die aktuelle Version von json2.js mit der Version verglichen, die ich in meinem Projekt hatte und bemerkte einen Unterschied in der Art, wie der Funktionsausdruck erstellt und selbst ausgeführt wurde.Position der Klammern für die automatische Ausführung anonymer JavaScript-Funktionen?
Der Code verwendet eine anonyme Funktion in Klammern zu wickeln und dann,
(function() {
// code here
})();
ausführen, aber jetzt wickelt es die Auto-ausgeführte Funktion in Klammern.
(function() {
// code here
}());
Es ist ein Kommentar von CMS in der akzeptierte Antwort von Explain JavaScript’s encapsulated anonymous function syntax, dass „beide. (function(){})();
und (function(){}());
gültig sind“
Ich habe mich gefragt, was der Unterschied ist? Nimmt das erstere Speicher auf, indem es um eine globale, anonyme Funktion herumgeht? Wo sollte sich die Klammer befinden?
Siehe auch [Differenz zwischen (function() {})(); und function() {}();] (http://stackoverflow.com/q/423228/1048572) und [Gibt es einen Unterschied zwischen (function() {...}()); und (function() {...})();?] (http://stackoverflow.com/q/3783007/1048572) – Bergi
Related: [Sofortige Funktionsaufrufsyntax] (http://stackoverflow.com/q/939386/1048572) (in JSLint) – Bergi
Lesen Sie auch über den [Zweck dieses Konstrukts] (http://stackoverflow.com/q/592396/1048572), oder überprüfen Sie eine ([technische] (http://stackoverflow.com/ q/4212149/1048572)) [Erklärung] (http://stackoverflow.com/q/8228281/1048572) (auch [hier] (http://stackoverflow.com/a/441498/1048572)). Für warum die Klammern notwendig sind, siehe [diese Frage] (http://stackoverflow.com/q/1634268/1048572). – Bergi