جاوااسکریپت علاوه بر اعلانهای تابع و عبارتهای تابع، روش نوشتن بسیار موجز دیگری هم برای تعریف تابع دارد. به این توابع، «توابع پیکانی» میگویند.
در این مفهوم، روی روش نوشتنی تمرکز میکنیم که برای نوشتن تابع پیکانی به کار میرود.
در نحوهی کار تابع پیکانی تفاوتهایی وجود دارد، مثل اتصال this، که در مفاهیم دیگر به آنها میپردازیم.
در ادامه، مقایسهای بین اعلان تابع و تابع پیکانی میبینید.
function addUpTwoNumbers(num1, num2) {
return num1 + num2;
}
// function keyword removed and => added
const addUpTwoNumbers = (num1, num2) => {
return num1 + num2;
};
در بالا میبینید که روش نوشتن تابع پیکانی:
function را حذف میکندaddUpTwoNumbers را بهعنوان یک const اعلام کرده است=> اضافه میکنداگر بدنهی تابع، مثل مثال بالا، فقط شامل یک دستور return باشد، میتوان {} و کلیدواژهی return را حذف کرد.
const addUpTwoNumbers = (num1, num2) => { return num1 + num2 };
// can be shortened to
const addUpTwoNumbers = (num1, num2) => num1 + num2;
// braces {} and return removed
در حالت خاصی که تابع پیکانی فقط یک شیء را برمیگرداند، برای اینکه بتوان دستور return را حذف کرد، باید شیء را داخل پرانتز گذاشت.
// explicit return of object
const addUpTwoNumbers = (num1, num2) => {
return { num1, num2 };
};
// implicit return of object
const addUpTwoNumbers = (num1, num2) => ({ num1, num2 });
استفاده از پرانتز دور پارامترها به تعداد پارامترها بستگی دارد.
// 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;
مفاهیم دیگری مثل پارامترهای باقیمانده و ساختارشکنی را هم میتوان همراه با تابع پیکانی به کار برد.