Skip to content

Türchen 01

Published: at 07:00 AMSuggest Changes

Arrow Functions – Elegante Syntax für Funktionen

Seit der Einführung von ES6 (ECMAScript 2015) hat JavaScript viele nützliche Features erhalten, die das Schreiben von sauberem und effizientem Code erleichtern. Eines dieser Features sind Arrow Functions (Pfeilfunktionen), die eine kompakte und lesbare Syntax für Funktionen bieten.

Was sind Arrow Functions?

Arrow Functions sind eine neue Art, Funktionen zu schreiben. Sie verwenden eine kürzere Syntax als traditionelle Funktionsausdrücke und binden das this Schlüsselwort lexikalisch, was einige der typischen Fallstricke beim Umgang mit this vermeidet.

Syntax von Arrow Functions

Die Grundsyntax einer Arrow Function sieht wie folgt aus:

// Traditionelle Funktion
function add(a, b) {
  return a + b;
}

// Arrow Function
const add = (a, b) => {
  return a + b;
};

Für noch mehr Kürze kann man bei Arrow Functions den Funktionskörper vereinfachen:

Lexikalisches this Binding

Ein bedeutender Vorteil von Arrow Functions ist das lexikalische Binden von this. In traditionellen Funktionen kann der Wert von this je nach Aufrufkontext variieren. Arrow Functions hingegen übernehmen den Wert von this aus dem umgebenden Kontext.

Beispiel mit traditioneller Funktion (falsch) :

function Person() {
  this.age = 0;

  setInterval(function() {
    this.age++;
    console.log(this.age);
  }, 1000);
}

const p = new Person();
// Ausgabe: NaN, da 'this' innerhalb der Funktion nicht auf das 'Person'-Objekt verweist

Beispiel mit traditioneller Funktion (richtig) :

function Person() {
  // setzt "this" in einen Hilfswert "that", damit dieser in der "setInterval"-Methode bekannt ist.
  const that = this;

  this.age = 0;

  setInterval(function() {
    // Benutzt "that" anstelle von "this", dass hier neu gesetzt wird.
    that.age++;
    console.log(that.age);
  }, 1000);
}

const p = new Person();
// Ausgabe: 1, 2, 3, 4, 5, ... zählt das Alter jede Sekunde um 1 hoch und gibt es aus.

Lösung mit Arrow Function:

function Person() {
  this.age = 0;

  setInterval(() => {
    // Benutzt "this", da dessen Kontext nicht neu gesetzt wird.
    this.age++;
    console.log(this.age);
  }, 1000);
}

const p = new Person();
// Ausgabe: 1, 2, 3, ..., da 'this' korrekt auf das 'Person'-Objekt verweist

Praktische Anwendungsfälle

Wichtige Hinweise

Fazit

Arrow Functions sind ein mächtiges Werkzeug, um JavaScript-Code kompakter und lesbarer zu gestalten. Sie eignen sich hervorragend für kurze Funktionen und Callbacks, insbesondere wenn man das lexikalische this Binding nutzen möchte. Allerdings sollten sie mit Bedacht eingesetzt werden, da sie nicht in allen Situationen die beste Wahl sind.

Experimentiere mit Arrow Functions und entdecke, wie sie deinen Code verbessern können!


Previous Post
Türchen 02