Heim > Web-Frontend > js-Tutorial > Hauptteil

Verhalten sich anonyme Funktionen mit unterschiedlicher Syntax in JavaScript anders, wenn sie mit Modifikatoren kombiniert werden?

Susan Sarandon
Freigeben: 2024-10-30 15:17:02
Original
849 Leute haben es durchsucht

Do Anonymous Functions with Different Syntax Behave Differently in JavaScript When Combined with Modifiers?

Sind anonyme Funktionen mit unterschiedlicher Syntax in JavaScript funktional gleich?

In JavaScript sind sowohl (function() { })() als auch ( function() { }()) scheint möglicherweise dieselbe Aufgabe auszuführen, indem „foo“ und „bar“ nacheinander angezeigt werden. Unter bestimmten Bedingungen gibt es jedoch geringfügige Unterschiede zwischen diesen beiden Syntaxen.

Codeblock 1:

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

alert(bar);
Nach dem Login kopieren

Codeblock 2:

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

alert(bar);
Nach dem Login kopieren

Funktional gleichwertig

In Ermangelung jeglicher Änderungen sind beide Codeblöcke funktional gleichwertig. Sie erstellen eine anonyme Funktion, führen sie sofort aus und greifen dann auf die in der Funktion definierte Balkenvariable zu.

Unterschiede bei Modifikationen

Wenn Sie jedoch einen Modifikator wie z Als neu vor den Funktionsaufrufen oder etwas nach ihnen hinzufügen, ändert sich das Verhalten.

Codeblock 1 mit new und .prop:

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

Dieser Code erstellt eine neue Instanz der anonymen Funktion und greift auf deren Prop-Eigenschaft zu. Es wird 4 zurückgegeben.

Codeblock 2 mit new und .Class:

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

Im Gegensatz dazu ruft dieser Code new für die Class-Eigenschaft auf. Aufgrund der zusätzlichen Klammern innerhalb der äußeren Klammern ist der Funktionsaufruf nicht Teil des neuen Ausdrucks. Stattdessen ruft es die Funktion normal auf und gibt ihren Rückgabewert zurück, der eine Klasseninstanz ist.

Zusammenfassend lässt sich sagen, dass sowohl (function() { })() als auch (function() { }()) funktional sind Unter normalen Bedingungen gleichwertig, verhalten sie sich anders, wenn sie mit Modifikatoren kombiniert werden, die sich auf ihre Ausführung auswirken.

Das obige ist der detaillierte Inhalt vonVerhalten sich anonyme Funktionen mit unterschiedlicher Syntax in JavaScript anders, wenn sie mit Modifikatoren kombiniert werden?. 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!