Reageren ES6 Pijl Functies


Pijlfuncties

Met pijlfuncties kunnen we kortere functiesyntaxis schrijven:

Voordat:

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

Met Pijl Functie:

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

Het wordt korter! Als de functie slechts één instructie heeft en de instructie een waarde retourneert, kunt u de haakjes en het returntrefwoord verwijderen:

Pijlfuncties Retourwaarde standaard:

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

Opmerking: dit werkt alleen als de functie slechts één instructie heeft.

Als u parameters heeft, geeft u deze door tussen haakjes:

Pijlfunctie met parameters:

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

Als je maar één parameter hebt, kun je de haakjes ook overslaan:

Pijlfunctie zonder haakjes:

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


w3schools CERTIFIED . 2022

Gecertificeerd!

Voltooi de React-modules, doe de oefeningen, doe het examen en word w3schools gecertificeerd!!

$95 INSCHRIJVEN

Wat over this?

Ook de bediening van thisis bij pijlfuncties anders dan bij reguliere functies.

Kortom, met pijlfuncties zijn er geen bindingen van this.

In reguliere functies thisvertegenwoordigde het sleutelwoord het object dat de functie aanriep, wat het venster, het document, een knop of wat dan ook zou kunnen zijn.

Bij pijlfuncties vertegenwoordigt het thistrefwoord altijd het object dat de pijlfunctie heeft gedefinieerd.

Laten we eens kijken naar twee voorbeelden om het verschil te begrijpen.

Beide voorbeelden roepen een methode twee keer aan, eerst wanneer de pagina wordt geladen en nogmaals wanneer de gebruiker op een knop klikt.

Het eerste voorbeeld gebruikt een reguliere functie en het tweede voorbeeld gebruikt een pijlfunctie.

Het resultaat laat zien dat het eerste voorbeeld twee verschillende objecten retourneert (venster en knop), en het tweede voorbeeld het Header-object twee keer retourneert.

Voorbeeld

Met een reguliere functie, thisvertegenwoordigt het het object dat de functie heeft aangeroepen:

class Header {
  constructor() {
    this.color = "Red";
  }

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

const myheader = new Header();

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

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

Voorbeeld

Met een pijlfunctie thisvertegenwoordigt het het Header-object, ongeacht wie de functie heeft aangeroepen:

class Header {
  constructor() {
    this.color = "Red";
  }

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

const myheader = new Header();


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

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

Onthoud deze verschillen wanneer u met functies werkt. Soms is het gedrag van reguliere functies wat u wilt, zo niet, gebruik dan pijlfuncties.


Test jezelf met oefeningen

Oefening:

Voltooi deze pijlfunctie:

hello =  "Hello World!";