Arrow function در جاوا اسکریپت
توابع Arrow در جاوااسکریپت (Arrow Function)
توابع Arrow یکی از ویژگیهای مهم معرفی شده در ES6 هستند که نحوه نوشتن توابع در جاوااسکریپت را سادهتر و خواناتر کردهاند. این توابع با استفاده از علامت => تعریف میشوند و رفتار متفاوتی نسبت به توابع معمولی دارند.
مقایسه توابع معمولی و Arrow
ویژگی | تابع معمولی | Arrow Function |
---|---|---|
سینتکس | function() {} | () => {} |
this | مربوط به شیء فراخوانیکننده | مربوط به محیط خارجی (Lexical scope) |
arguments | دارد | ندارد |
انواع مختلف Arrow Function
- فرم پایه:
(پارامترها) => { دستورات }
- فرم کوتاه شده: وقتی فقط یک عبارت داریم، میتوانیم {} و return را حذف کنیم
- بدون پارامتر: وقتی پارامتری نداریم، باید پرانتز خالی بگذاریم
- یک پارامتر: میتوانیم پرانتز را حذف کنیم
نکته مهم: Arrow Function ها نمیتوانند به عنوان constructor استفاده شوند و اگر با new فراخوانی شوند خطا میدهند.
مزایای استفاده از Arrow Function
- کد کوتاهتر و خواناتر
- عدم نیاز به bind کردن this در اکثر موارد
- مناسب برای توابع callback
- کارایی بهتر در برخی سناریوها
برای یادگیری عمیقتر و مثالهای کاربردی میتوانید به آموزش جامع Arrow function در جاوا اسکریپت مراجعه نمایید.
محدودیتهای Arrow Function
با وجود مزایای زیاد، Arrow Function در برخی موارد مناسب نیست:
- وقتی به شیء arguments نیاز داریم
- در متدهای شیء که به this نیاز دارند
- در توابع constructor
- در توابع generator
برای استفاده بهینه، باید تفاوتهای Arrow Function و توابع معمولی را به خوبی درک کنید.