Detaillierte Erklärung des Unterschieds zwischen Pfeilfunktionen und normalen Funktionen in JavaScript

Detaillierte Erklärung des Unterschieds zwischen Pfeilfunktionen und normalen Funktionen in JavaScript

In diesem Artikel wird der Unterschied zwischen Pfeilfunktionen und normalen Funktionen in JavaScript zu Ihrer Information erläutert. Der spezifische Inhalt ist wie folgt

Pfeilfunktionen:

lass Spaß = () => {
    console.log('lalalala');
}

Gewöhnliche Funktionen:

Funktion Spaß() {
    console.log('lalla');
}

Pfeilfunktionen entsprechen anonymen Funktionen und vereinfachen Funktionsdefinitionen. Pfeilfunktionen haben zwei Formate. Eines enthält nur einen Ausdruck, wobei { ... } und return weggelassen werden. Es gibt auch einen Typ, der mehrere Anweisungen enthalten kann. In diesem Fall können { ... } und return nicht weggelassen werden.

Pfeilfunktionen sind anonyme Funktionen und können nicht als Konstruktoren oder mit „new“ verwendet werden.

let FunConstructor = () => {
    konsole.log('lll');
}

let fc = neuer FunConstructor();

Pfeilfunktionen binden keine Argumente, sondern verwenden stattdessen Restparameter ... Lösung

Funktion A(a){
  konsole.log(Argumente);
}
A(1,2,3,4,5,8); // [1, 2, 3, 4, 5, 8, Aufgerufener: ƒ, Symbol(Symbol.iterator): ƒ]


sei B = (b)=>{
  konsole.log(Argumente);
}
B(2,92,32,32); // Nicht abgefangener Referenzfehler: Argumente sind nicht definiert


sei C = (...c) => {
  console.log(c);
}
C(3,82,32,11323); // [3, 82, 32, 11323]

Pfeilfunktionen binden this nicht, sondern erfassen den this-Wert des Kontextes, in dem sie sich befinden, als ihren eigenen this-Wert

var obj = {
  eine: 10,
  b: () => {
    console.log(this.a); // undefiniert
    console.log(dies); // Fenster {postMessage: ƒ, Unschärfe: ƒ, Fokus: ƒ, Schließen: ƒ, Rahmen: Fenster, …}
  },
  c: Funktion() {
    konsole.log(diese.a); // 10
    console.log(dies); // {a: 10, b: ƒ, c: ƒ}
  }
}
obj.b(); 
obj.c();
var obj = {
  eine: 10,
  b: Funktion(){
    konsole.log(diese.a); //10
  },
  c: Funktion() {
     Rückkehr ()=>{
           konsole.log(diese.a); //10
     }
  }
}
obj.b(); 
obj.c()();

Wenn eine Pfeilfunktion eine Funktion über die Methode call() oder apply() aufruft, wird nur ein Parameter übergeben und dieser hat darauf keine Auswirkung.

let obj2 = {
    eine: 10,
    b: Funktion(n) {
        sei f = (n) => n + dies.a;
        gibt f(n) zurück;
    },
    c: Funktion(n) {
        sei f = (n) => n + dies.a;
        sei m = {
            eine: 20
        };
        gibt f.call(m,n) zurück;
    }
};
console.log(obj2.b(1)); // 11
console.log(obj2.c(1)); // 11

Pfeilfunktionen haben keine Prototypeigenschaft

var a = ()=>{
  Rückgabe 1;
}

Funktion b(){
  Rückgabe 2;
}

console.log(a.prototype); // undefiniert
console.log(b.prototype); // {Konstruktor: ƒ}

Pfeilfunktionen können nicht als Generatorfunktionen verwendet werden und können das Schlüsselwort „yield“ nicht verwenden.

Zusammenfassen

  • Das this einer Pfeilfunktion zeigt immer auf das this ihres Kontexts und keine Methode kann ihre Referenz ändern, wie etwa call() , bind() , apply()
  • Das „this“ einer normalen Funktion bezieht sich auf das Objekt, das sie aufruft.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Tipps zum Schreiben besserer Bedingungen und Übereinstimmungsbedingungen in JavaScript (Zusammenfassung)
  • Detaillierte Erklärung dieser Zeigerfunktion in JS
  • Eigenschaften von JavaScript-Pfeilfunktionen und Unterschiede zu normalen Funktionen
  • Welche Szenarien sind für JS-Pfeilfunktionen nicht geeignet?
  • In welchen Szenarien in JavaScript können Pfeilfunktionen nicht verwendet werden?
  • Einführung in bedingte Zugriffsattribute und Pfeilfunktionen in JavaScript

<<:  Nexus verwendet Nginx-Proxy zur Unterstützung des HTTPS-Protokolls

>>:  Installationsprozess von VMware vCenter 6.7 (grafisches Tutorial)

Artikel empfehlen

Benutzerdefinierte optionale Zeitkalenderkomponente von Vue

In diesem Artikelbeispiel wird der spezifische Co...

mysql 5.7.18 winx64 Passwort ändern

Nachdem MySQL 5.7.18 erfolgreich installiert wurd...

So debuggen Sie das Loader-Plugin in einem Webpack-Projekt

Als ich kürzlich lernte, wie man webpack verwende...

10 Tipps zum Entwerfen nützlicher, benutzerfreundlicher Webanwendungen

Hier sind 10 Tipps zum Entwerfen benutzerfreundli...

Verwenden von jQuery zum Implementieren des Karusselleffekts

In diesem Artikel finden Sie den spezifischen Cod...

Grundlegende Verwendung von Unterabfragen in MySQL

Inhaltsverzeichnis 1. Unterabfragedefinition 2. U...

Detaillierte Erläuterung der CSS BEM-Schreibstandards

BEM ist ein komponentenbasierter Ansatz zur Weben...

jQuery-Plugin für ein nahtloses Karussell

Ein nahtloses Karussell ist ein sehr häufiger Eff...

SSH-Schlüsselpaare von einer oder mehreren Linux-Instanzen trennen

Schlüsselpaar trennen Trennen Sie SSH-Schlüsselpa...