A függvénydeklarációk és a függvénykifejezések mellett a JavaScriptnek van egy másik, nagyon tömör szintaxisa is függvények definiálására. Ezeket a függvényeket nyílfüggvényeknek nevezzük.
Ebben a fogalomban a nyílfüggvények írásához használt szintaxisra összpontosítunk. A nyílfüggvények működésében vannak eltérések, például a this kötése, amelyeket más fogalmakban tárgyalunk majd.
Az alábbi példa egy függvénydeklarációt és egy nyílfüggvényt hasonlít össze.
function addUpTwoNumbers(num1, num2) {
return num1 + num2;
}
// function keyword removed and => added
const addUpTwoNumbers = (num1, num2) => {
return num1 + num2;
};
A fenti példában láthatod, hogy a nyílfüggvény szintaxisa:
function kulcsszótaddUpTwoNumbers azonosítót const-ként deklarálja=>)Ha a függvény törzse csak egy return utasítást tartalmaz, mint a fenti példában, akkor a {} és a return kulcsszó elhagyható.
const addUpTwoNumbers = (num1, num2) => { return num1 + num2 };
// can be shortened to
const addUpTwoNumbers = (num1, num2) => num1 + num2;
// braces {} and return removed
Abban a különleges esetben, amikor egy nyílfüggvény csak egy objektumot ad vissza, zárójelek kellenek az objektum köré, hogy el lehessen hagyni a return utasítást.
// explicit return of object
const addUpTwoNumbers = (num1, num2) => {
return { num1, num2 };
};
// implicit return of object
const addUpTwoNumbers = (num1, num2) => ({ num1, num2 });
A paraméterek körüli zárójelek használata a paraméterek számától függ.
// one parameter does not need parenthesis
const square = num => num * num;
// two or more parameters need to be wrapped in parenthesis
const addUpTwoNumbers = (num1, num2) => num1 + num2;
Más fogalmak, például a Rest paraméterek és a Destrukturálás szintén használhatók nyílfüggvényekkel.