2016-10-09 13 views
3

Sorry für den schrecklichen Titel, sobald Leute mir eine Richtung geben, kann ich es besser für die Zukunft bearbeiten.Was ist der Unterschied zwischen {}()) und {})()

Ich bin vor allem neugierig, was der Unterschied zwischen

(function() { 
    return false; // logs false 
}()); 

and 

(function() { 
    return false; // Also returns false 
})(); 

ist, sie beide scheinen mir das gleiche Ergebnis in der Konsole zu geben, aber ich bin sicher, es muss ein Unterschied sein, könnte jemand sagen, mir der Unterschied und warum würdest du eins über dem anderen benutzen?

Antwort

3

Wie in der anderen Antwort, es gibt keinen funktionalen Unterschied

jedoch ist, wenn Sie in ES2015 sind, und verwenden einen Pfeil Funktion Stil IIFE

(() => { 
    return false; // logs false 
})(); 

Werke, aber diese Version:

(() => { 
    return false; // logs false 
    }()); 

nicht - js Engine beschwert sich über fehlende) in Klammern

1

Kein Unterschied-- nur zwei verschiedene Möglichkeiten zum Schreiben eines IIFE (sofort aufgerufene Funktion Ausdruck) in Javascript. Was auch immer Sie wählen, ist eine Wahl der Konvention.

(Wenn Sie mehr Informationen über IIFE die in Javascript benötigen, gibt es eine große SO here.)

0

Entweder die folgenden zwei Muster können für IIFE verwendet werden, verwendet den Ausführungskontext der Funktion, um "Privatsphäre" zu erstellen.

(function(){ /* do something */ }()); // Douglas Crockford recommends 

(function(){ /* do something */ })(); // This way works as well 

Warum? Da der Grund der Klammer darin besteht, zwischen Funktionsausdrücken und Funktionsdeklarationen zu unterscheiden, können sie entfernt werden, wenn der Parser bereits einen Ausdruck erwartet.

Wenn Sie eine Zuweisung vornehmen, ist die Verwendung von Konventionen für die Kodierung eine gute Idee.

+0

'Douglas Crockford empfiehlt ... warum' - weil er denkt final'() 'in'})() 'sehen aus wie es hängt wie Hunde Bälle - ernst, seine Worte - schade ES2015 + erfordert Hunde Bälle zu Arbeit! –

+0

Ja, wie ich erwähnte Konvention Staaten lassen sie abhängen .. Sie haben den Punkt;) – Abs

Verwandte Themen