Sobes.tech
Middle

Mi a különbség a nyílfüggvény és a normál nevű függvény között?

sobes.tech MI

Válasz az MI-től

A JavaScript nyílfüggvények több fontos szempontból különböznek a szokásos, névvel ellátott függvényektől:

  • this kontextus: A nyílfüggvényeknek nincs saját this-ük; öröklik a környező lexikális kontextusból. A normál függvények saját this-el rendelkeznek, ami a hívás módjától függ.
  • arguments hiánya: A nyílfüggvényeknek nincs arguments objektumuk. Az argumentumokhoz paraméterek vagy rest paraméterek segítségével lehet hozzáférni.
  • Nem használhatók konstruktorként: A nyílfüggvényeket nem lehet new-el hívni.
  • Szintaxis: A nyílfüggvények rövidebbek és kényelmesebbek rövid függvények írásához.

Példa:

const obj = {
  value: 42,
  regularFunc: function() { return this.value; },
  arrowFunc: () => this.value
};

console.log(obj.regularFunc()); // 42
console.log(obj.arrowFunc());   // undefined, mert a `this` nem az `obj`-re mutat