JS-Tutorial

JS-HAUS JS-Einführung JS Wohin JS-Ausgabe JS-Anweisungen JS-Syntax JS-Kommentare JS-Variablen JS Let JS Konst JS-Operatoren JS-Arithmetik JS-Aufgabe JS-Datentypen JS-Funktionen JS-Objekte JS-Ereignisse JS-Strings JS-String-Methoden Suche nach JS-Strings JS-String-Vorlagen JS-Nummern JS-Zahlenmethoden JS-Arrays JS-Array-Methoden JS-Array-Sortierung JS-Array-Iteration JS-Array-Konstante JS-Daten JS-Datumsformate JS Date Get-Methoden JS-Datumssatzmethoden JS Math JS Zufällig JS Boolesche Werte JS-Vergleiche JS-Bedingungen JS-Schalter JS-Schleife für JS-Schleife für In JS-Schleife für Of JS-Schleife While JS Pause JS-Iterables JS-Sets JS-Karten JS Typeof JS-Typkonvertierung JS Bitweise JS RegExp JS-Fehler JS-Bereich JS Heben Strenger JS-Modus JS dieses Schlüsselwort JS-Pfeilfunktion JS-Klassen JS JSON JS-Debugging JS-Styleguide JS Best Practices JS-Fehler JS-Leistung JS Reservierte Wörter

JS-Versionen

JS-Versionen JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge JS-Geschichte

JS-Objekte

Objektdefinitionen Objekteigenschaften Objektmethoden Objektanzeige Objektzugriffsmethoden Objektkonstruktoren Objekt-Prototypen Objekt-Iterables Objektsätze Objektkarten Objektreferenz

JS-Funktionen

Funktionsdefinitionen Funktionsparameter Funktionsaufruf Funktionsaufruf Funktion anwenden Funktionsschließungen

JS-Klassen

Klasse Einführung Klassenvererbung Klasse statisch

JS asynchron

JS-Rückrufe JS asynchron JS verspricht JS Async/Warten

JS-HTML-DOM

DOM-Einführung DOM-Methoden DOM-Dokument DOM-Elemente DOM-HTML DOM-Formulare DOM-CSS DOM-Animationen DOM-Ereignisse DOM-Ereignis-Listener DOM-Navigation DOM-Knoten DOM-Sammlungen DOM-Knotenlisten

Stückliste des JS-Browsers

JS-Fenster JS-Bildschirm JS-Standort JS-Geschichte JS-Navigator JS-Popup-Warnung JS-Timing JS-Cookies

JS-Web-APIs

Web-API-Einführung Web Forms-API Webprotokoll-API Webspeicher-API Web Worker-API Web-Fetch-API Web-Geolocation-API

JS AJAX

AJAX-Einführung AJAX-XMLHttp AJAX-Anfrage AJAX-Antwort AJAX-XML-Datei AJAX-PHP AJAX ASP AJAX-Datenbank AJAX-Anwendungen AJAX-Beispiele

JS JSON

JSON-Einführung JSON-Syntax JSON vs. XML JSON-Datentypen JSON-Parsing JSON-Stringify JSON-Objekte JSON-Arrays JSON-Server JSON-PHP JSON-HTML JSON JSONP

JS vs. jQuery

jQuery-Selektoren jQuery-HTML jQuery-CSS jQuery-DOM

JS-Grafik

JS-Grafik JS-Leinwand JS Plotly JS Chart.js JS Google-Diagramm JS D3.js

JS-Beispiele

JS-Beispiele JS-HTML-DOM JS-HTML-Eingabe JS-HTML-Objekte JS-HTML-Ereignisse JS-Browser JS-Editor JS-Übungen JS-Quiz JS-Zertifikat

JS-Referenzen

JavaScript-Objekte HTML-DOM-Objekte


JavaScript-Pfeilfunktion

Pfeilfunktionen wurden in ES6 eingeführt.

Pfeilfunktionen ermöglichen es uns, eine kürzere Funktionssyntax zu schreiben:

let myFunction = (a, b) => a * b;

Vor:

hello = function() {
  return "Hello World!";
}

Mit Pfeilfunktion:

hello = () => {
  return "Hello World!";
}

Es wird kürzer! Wenn die Funktion nur eine Anweisung hat und die Anweisung einen Wert zurückgibt, können Sie die Klammern und das returnSchlüsselwort entfernen:

Standardmäßiger Rückgabewert der Pfeilfunktionen:

hello = () => "Hello World!";

Hinweis: Dies funktioniert nur, wenn die Funktion nur eine Anweisung hat.

Wenn Sie Parameter haben, übergeben Sie diese in Klammern:

Pfeilfunktion mit Parametern:

hello = (val) => "Hello " + val;

Wenn Sie nur einen Parameter haben, können Sie die Klammern auch überspringen:

Pfeilfunktion ohne Klammern:

hello = val => "Hello " + val;
this


Worum geht es this?

Auch die Handhabung von thisist bei Pfeilfunktionen anders als bei regulären Funktionen.

Kurz gesagt, bei Pfeilfunktionen gibt es keine Bindung von this.

In regulären Funktionen thisstellt das Schlüsselwort das Objekt dar, das die Funktion aufgerufen hat, was das Fenster, das Dokument, eine Schaltfläche oder was auch immer sein kann.

Bei Pfeilfunktionen repräsentiert das thisSchlüsselwort immer das Objekt, das die Pfeilfunktion definiert hat.

Schauen wir uns zwei Beispiele an, um den Unterschied zu verstehen.

Beide Beispiele rufen eine Methode zweimal auf, zuerst beim Laden der Seite und noch einmal, wenn der Benutzer auf eine Schaltfläche klickt.

Das erste Beispiel verwendet eine reguläre Funktion und das zweite Beispiel eine Pfeilfunktion.

Das Ergebnis zeigt, dass das erste Beispiel zwei verschiedene Objekte (Fenster und Schaltfläche) zurückgibt und das zweite Beispiel das Fensterobjekt zweimal zurückgibt, da das Fensterobjekt der "Besitzer" der Funktion ist.

Beispiel

Mit einer regulären Funktion thisstellt das Objekt dar, das die Funktion aufruft :

// Regular Function:
hello = function() {
  document.getElementById("demo").innerHTML += this;
}

// The window object calls the function:
window.addEventListener("load", hello);

// A button object calls the function:
document.getElementById("btn").addEventListener("click", hello);

Beispiel

Mit einem Pfeil thisstellt die Funktion den Eigentümer der Funktion dar:

// Arrow Function:
hello = () => {
  document.getElementById("demo").innerHTML += this;
}

// The window object calls the function:
window.addEventListener("load", hello);

// A button object calls the function:
document.getElementById("btn").addEventListener("click", hello);

Denken Sie an diese Unterschiede, wenn Sie mit Funktionen arbeiten. Manchmal ist das Verhalten regulärer Funktionen das, was Sie wollen, wenn nicht, verwenden Sie Pfeilfunktionen.


Browser-Unterstützung

Die folgende Tabelle definiert die ersten Browserversionen mit voller Unterstützung für Pfeilfunktionen in JavaScript:

Chrome 45 Edge 12 Firefox 22 Safari 10 Opera 32
Sep, 2015 Jul, 2015 May, 2013 Sep, 2016 Sep, 2015