مقدمه

در این درس با یک روش دیگر برای تعریف توابع بدون نام آشنا می‌شویم که نسبت به روش Function Expression ساده‌تر و مختصرتر است. این روش Arrow Function نام دارد.

تعریف توابع به روش Arrow Function

فرم کلی سینتکس Arrow Function به صورت زیر است.

let func = (arg1, arg2, ..., argN) => expression;

که یک تابع با N آرگومان ایجاد می‌کند و سپس عبارت سمت راست را ارزیابی کرده و آن را به عنوان خروجی تابع برمی‌گرداند. به عبارت دیگر، این کد فرم خلاصه‌تر کد زیر است.

let func = function(arg1, arg2, ..., argN) {
  return expression;
}

حالا به مثال زیر نگاه کنید.

Copy Icon functions.js
let sum = (a, b) => a + b;

/* This arrow function is a shorter form of:
            
let sum = function(a, b) {
  return a + b;
};
*/

console.log(sum(1, 2)); // 3

اگر تابع ما فقط یک پارامتر داشته باشد، نیازی نیست که آن پارامتر را درون پرانتز قرار دهیم و اگر تابع هیچ پارامتری نداشته باشد، پرانتز را باید حتماً قرار دهیم. در مثال زیر، تابع double فقط بک پارامتر با نام n دارد و بنابراین، می‌توانیم از قرار دادن آن درون پرانتز صرف‌نظر کنیم و تابع sayHi() فاقد پارامتر است و بنابراین، حتماً به یک جفت پرانتر خالی نیاز دارد.

Copy Icon functions.js
let double = n => n * 2;
let sayHi = () => console.log('Hi!');

console.log(double(3)); // 6
sayHi(); // Hi!

در مثال‌های بالا مقدار بازگشتی تابع یک عبارت ساده است اما اگر تابع پیچیده‌تری داشته باشیم، می‌توانیم کد بدنه‌ی تابع را درون یک جفت آکلاد قرار دهیم و عبارت بازگشتی را با استفاده از کلمه کلیدی return مشخص کنیم. مثال زیر را ببینید.

Copy Icon functions.js
let sum = (a, b) => {
  let result = a + b;
  return result;
};
            
console.log(sum(1, 2)); // 3