Heim > Web-Frontend > js-Tutorial > Hauptteil

Sind \'(function () { }) ()\' und \'(function () { })()\' in JavaScript funktionell gleich?

Mary-Kate Olsen
Freigeben: 2024-10-30 08:53:02
Original
854 Leute haben es durchsucht

Are

Sind „(function () { }) ()“ und „(function () { })()“ in JavaScript funktionell gleich?

In JavaScript Die folgenden beiden Codeblöcke scheinen identische Ergebnisse zu liefern:

(function () {
    bar = 'bar';
    alert('foo');
})();

alert(bar);
Nach dem Login kopieren
(function () {
    bar = 'bar';
    alert('foo');
}());

alert(bar);
Nach dem Login kopieren

Beide Blöcke zeigen die Meldung „foo“ gefolgt von „bar“ an. Gibt es jedoch einen funktionalen Unterschied zwischen diesen beiden Codestrukturen?

Antwort

Codeblöcke sind identisch

Unter normalen Umständen "(Funktion ( ) { }) ()“ und „(function () { })()“ sind in JavaScript funktional identisch. Beide rufen eine anonyme Funktion auf und führen sie sofort aus. Die Funktion initialisiert die Balkenvariable und gibt die Meldung „foo“ aus.

Unterschiede mit anderer Syntax

Wenn dem Code jedoch zusätzliche Syntax hinzugefügt wird, können Unterschiede auftreten.

Fall 1: Funktionskonstruktorsyntax

Betrachten Sie den folgenden Code:

new (function () {
    this.prop = 4;
}) ().prop;
Nach dem Login kopieren

Dieser Code erstellt eine neue Instanz der Funktionsklasse und ruft die Prop-Eigenschaft der neuen Instanz ab. Es gibt den Wert 4 zurück.

Fall 2: Namespace-Syntax

Betrachten Sie den folgenden Code:

new ( function() {
    return { Class: function() { } }; 
}() ).Class;
Nach dem Login kopieren

Dieser Code ruft den neuen Operator für die Class-Eigenschaft auf. Aufgrund der verschachtelten Klammern wird die Funktion normal aufgerufen und ihr Rückgabewert wird zum Erstellen einer neuen Instanz verwendet.

Das obige ist der detaillierte Inhalt vonSind \'(function () { }) ()\' und \'(function () { })()\' in JavaScript funktionell gleich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!