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

Detaillierte Erklärung zur JavaScript-Datenabflachung

Inhaltsverzeichnis Was ist Abflachung? Rekursion ...

Nodejs konvertiert JSON-String in JSON-Objekt-Fehlerlösung

Wie konvertiere ich eine JSON-Zeichenfolge in ein...

Implementierungsschritte zum Erstellen eines lokalen Webservers auf Centos8

1 Übersicht System CentOS8, verwenden Sie httpd, ...

Zusammenfassung gängiger Docker-Befehle (empfohlen)

1. Zusammenfassung: Im Allgemeinen können sie in ...

Detaillierte Analyse mehrerer Situationen, in denen MySQL-Indizes fehlschlagen

1. Führende Fuzzy-Abfragen können keinen Index ve...

Warum wird mir die Zugriffsschnittstelle für Docker Tomcat nicht angezeigt?

Frage: Kann der Ursprungsserver keine Darstellung...

So überwachen Sie die Linux-Speichernutzung mit einem Bash-Skript

Vorwort Auf dem Markt sind zahlreiche Open-Source...

So führen Sie den Top-Befehl im Batchmodus aus

Der Befehl „top“ ist der beste Befehl, den jeder ...