Heim > häufiges Problem > Der Unterschied zwischen Pfeilfunktionen und gewöhnlichen Funktionen

Der Unterschied zwischen Pfeilfunktionen und gewöhnlichen Funktionen

百草
Freigeben: 2023-09-13 09:32:21
Original
2415 Leute haben es durchsucht

Die Unterschiede zwischen Pfeilfunktionen und gewöhnlichen Funktionen liegen hauptsächlich in der Einfachheit der Syntax, unterschiedlichen Punkten, nicht anwendbar auf Konstruktoren, Objekten ohne Argumente usw. Detaillierte Einführung: 1. Die Syntax von Pfeilfunktionen ist prägnanter als bei gewöhnlichen Funktionen. Das Funktionsschlüsselwort und die geschweiften Klammern können weggelassen werden direkt definiert. Pfeilfunktionen werden in verwendet. Wenn nur ein Parameter vorhanden ist, können die Klammern auch weggelassen werden. 2. Dies zeigt auf verschiedene Punkte usw.

Der Unterschied zwischen Pfeilfunktionen und gewöhnlichen Funktionen

Pfeilfunktion und reguläre Funktion sind zwei Möglichkeiten, Funktionen in JavaScript zu definieren. Sie weisen einige Unterschiede in der Syntax und Funktionalität auf. Im Folgenden werde ich den Unterschied zwischen Pfeilfunktionen und gewöhnlichen Funktionen im Detail vorstellen.

1. Syntaxeinfachheit:

Die Syntax von Pfeilfunktionen ist prägnanter als die von gewöhnlichen Funktionen. Pfeilfunktionen können mithilfe von Pfeilen (=>) definiert werden, wobei das Funktionsschlüsselwort und die geschweiften Klammern weggelassen werden, und die Parameter und Rückgabewerte der Funktion direkt definieren. Zum Beispiel:

   // 普通函数
   function regularFunc(a, b) {
     return a + b;
   }
   
   // 箭头函数
   const arrowFunc = (a, b) => a + b;
Nach dem Login kopieren

Die Pfeilfunktion kann die Klammern auch weglassen, wenn sie nur einen Parameter hat. Zum Beispiel:

   // 普通函数
   function regularFunc(a) {
     return a * 2;
   }
   
   // 箭头函数
   const arrowFunc = a => a * 2;
Nach dem Login kopieren

2. Worauf dies verweist, ist anders:

In einer normalen Funktion wird der Wert davon bestimmt, wenn die Funktion aufgerufen wird, und er zeigt auf das Objekt, das die Funktion aufruft. Bei Pfeilfunktionen wird der Wert davon bestimmt, wenn die Funktion definiert wird, und er zeigt auf den Kontext, in dem die Pfeilfunktion definiert ist. Dies bedeutet, dass die Pfeilfunktion kein eigenes This hat, sondern das This des übergeordneten Bereichs erbt. Zum Beispiel:

   // 普通函数
   const obj = {
     name: 'Alice',
     regularFunc: function() {
       console.log(this.name);
     }
   };
   obj.regularFunc(); // 输出:Alice
   
   // 箭头函数
   const obj = {
     name: 'Alice',
     arrowFunc: () => {
       console.log(this.name);
     }
   };
   obj.arrowFunc(); // 输出:undefined
Nach dem Login kopieren

In einer Pfeilfunktion verweist dies auf den Kontext, in dem die Pfeilfunktion definiert ist, nicht auf das Objekt, das die Pfeilfunktion aufruft.

3. Gilt nicht für Konstruktoren:

Pfeilfunktionen können nicht als Konstruktoren verwendet werden und Objekte können nicht über das Schlüsselwort new instanziiert werden. Als Konstruktoren können gewöhnliche Funktionen verwendet werden, und über das Schlüsselwort new können Objektinstanzen erstellt werden. Zum Beispiel:

   // 普通函数
   function RegularConstructor() {
     this.name = 'Alice';
   }
   const regularObj = new RegularConstructor();
   
   // 箭头函数
   const ArrowConstructor = () => {
     this.name = 'Alice';
   };
   const arrowObj = new ArrowConstructor(); // 报错:ArrowConstructor is not a constructor
Nach dem Login kopieren

4. Kein Argumentobjekt:

In einer normalen Funktion können Sie das Argumentobjekt verwenden, um auf alle eingehenden Parameter zuzugreifen, bei denen es sich um ein Array-ähnliches Objekt handelt. Die Pfeilfunktion verfügt nicht über ein eigenes Argumentobjekt, sondern erbt das Argumentobjekt im übergeordneten Bereich. Zum Beispiel:

   // 普通函数
   function regularFunc() {
     console.log(arguments[0]);
   }
   regularFunc(1, 2, 3); // 输出:1
   
   // 箭头函数
   const arrowFunc = () => {
     console.log(arguments[0]);
   };
   arrowFunc(1, 2, 3); // 报错:arguments is not defined
Nach dem Login kopieren

Zusammenfassend spiegelt sich der grammatikalische Unterschied zwischen Pfeilfunktionen und gewöhnlichen Funktionen hauptsächlich in der Einfachheit und dieser Ausrichtung wider. Pfeilfunktionen haben eine prägnantere Syntax, können aber nicht als Konstruktoren verwendet werden und verfügen nicht über eigene this- und arguments-Objekte. Die Syntax gewöhnlicher Funktionen ist relativ komplex, sie kann jedoch als Konstruktor verwendet werden und verfügt über eigene This- und Arguments-Objekte. Bei der tatsächlichen Verwendung können wir die geeignete Funktionsdefinitionsmethode entsprechend den spezifischen Anforderungen auswählen.

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Pfeilfunktionen und gewöhnlichen Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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