React ES6 Arrow Functions


Funkce šipek

Funkce šipek nám umožňují psát kratší syntaxi funkce:

Před:

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

S funkcí šipky:

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

Zkracuje se! Pokud má funkce pouze jeden příkaz a příkaz vrací hodnotu, můžete odstranit závorky a klíčové returnslovo:

Funkce šipek vrací výchozí hodnotu:

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

Poznámka: Toto funguje pouze v případě, že funkce má pouze jeden příkaz.

Pokud máte parametry, předáte je v závorkách:

Funkce šipky s parametry:

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

Ve skutečnosti, pokud máte pouze jeden parametr, můžete přeskočit i závorky:

Funkce šipky bez závorek:

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


w3schools CERTIFIED . 2022

Získejte certifikaci!

Dokončete moduly React, proveďte cvičení, udělejte zkoušku a získejte certifikaci w3schools!!

95 $ PŘIHLÁSIT SE

O čem this?

Manipulace s thisfunkcemi se také liší ve funkcích šipek ve srovnání s běžnými funkcemi.

Stručně řečeno, s funkcemi šipek neexistuje žádná vazba this.

V běžných funkcích představuje thisklíčové slovo objekt, který funkci volá, což může být okno, dokument, tlačítko nebo cokoli jiného.

U funkcí šipky thisklíčové slovo vždy představuje objekt, který definoval funkci šipky.

Podívejme se na dva příklady, abychom pochopili rozdíl.

Oba příklady volají metodu dvakrát, nejprve při načtení stránky a ještě jednou, když uživatel klikne na tlačítko.

První příklad používá běžnou funkci a druhý příklad používá funkci šipky.

Výsledek ukazuje, že první příklad vrací dva různé objekty (okno a tlačítko) a druhý příklad vrací objekt záhlaví dvakrát.

Příklad

S běžnou funkcí thispředstavuje objekt, který volal funkci:

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);

Příklad

S funkcí šipky thispředstavuje objekt záhlaví bez ohledu na to, kdo funkci zavolal:

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);

Pamatujte na tyto rozdíly, když pracujete s funkcemi. Někdy je chování běžných funkcí takové, jaké chcete, pokud ne, použijte funkce šipek.


Otestujte se pomocí cvičení

Cvičení:

Dokončete tuto funkci šipky:

hello =  "Hello World!";