Sobes.tech
Junior — Middle

Jak se liší použití šipkových funkcí od standardních funkcí v JavaScriptu?

sobes.tech AI

Odpověď od AI

Šipkové funkce v JavaScriptu se liší od standardních funkcí v několika klíčových bodech:

  • Kontext this: U šipkových funkcí je this lexikálně děděno z okolního prostředí, což znamená, že nevytváří vlastní kontext this. U běžných funkcí závisí this na tom, jak je funkce volána.

  • Nepřítomnost arguments: Šipkové funkce nemají vlastní objekt arguments. Přístup k argumentům je třeba řešit pomocí parametrů nebo vnějších proměnných.

  • Nelze je použít jako konstruktor: Šipkové funkce nelze volat s new, protože nemají interní metodu [[Construct]].

  • Kratší syntax: Šipkové funkce jsou obvykle kratší a pohodlnější pro psaní krátkých funkcí.

Příklad:

const obj = {
  value: 10,
  regularFunc: function() {
    console.log(this.value); // 10
  },
  arrowFunc: () => {
    console.log(this.value); // undefined nebo hodnota z vnějšího kontextu
  }
};

obj.regularFunc(); // vypíše 10
obj.arrowFunc();   // vypíše undefined

Volba mezi šipkovou a běžnou funkcí závisí na potřebě řízení kontextu a vlastnostech použití.