یک راه جدید برای تعریف توابع توی جاوااسکریپت استفاده از Arrow Function ها هست که توی ES6 معرفی شده. این نوع توابع تعریف ساده‌تری دارن. توی مثال زیر آیتم اولی یک تابع معمولی هست و آیتم بعدی دقیقا مشابه همون هست که با Arrow Function نوشته شده:

// Old functions
function alphaville() {
    return 'Forever Young';
}

// Arrow Function
alphaville = () => 'Forever Young';

ما توی آیتم اولی برای فرستادن اون متن به خروجی از کلمه کلیدی return استفاده کردیم. اما توی آیتم دومی متن مورد نظرمون رو دقیقا بعد Arrow یا => نوشتیم که دقیقا همون کار return رو می‌کنه. اگه لازم باشه کارهای بیشتری توی تابع انجام بدیم چطور؟ 🤔
از براکت جلوی Arrow استفاده می‌کنیم:

alphaville = () => {
    let song = 'Forever Young';
    // ...
    // ...
    // ...

    return song;
}

اگه تابع ما پارامتر داشته باشه اون رو داخل پرانتزی که بعد از مساوی و => هست می‌ذاریم:

play = (song) => {
    return song;
}

play(your_favorite_song);

دو نکته که باید درنظر داشته باشیم اینه که Arrow Function ها برخلاف توابع معمولی متغیری به اسم arguments ندارن. بجای اون می‌تونیم از پارامتر rest (سه نقطه) استفاده کنیم. همچنین این توابع دارای مقدار مستقل this نیستن و این مقدارش رو از حوزه‌های بالاتر می‌گیره. برای درک بهتر مورد پیشنهاد می‌کنم پست‌های زیر رو بخونین:

توضیح اختصاصی Arrow Function در جاوااسکریپت به زبان ساده
this توی جاوااسکریپت
آبجکت arguments توی توابع جاوااسکریپت چیه؟

 

منبع: