✍️ علامت آکولاد در تابع پیکانی دو معنی احتمالی دارد: بدنه تابع یا شیء تازه. جاوااسکریپت بلافاصله بعد از پیکان، آکولاد را شروع بدنه حساب میکنه. اگر میخوای یک شیء را با خروجی ضمنی برگردونی، کل شیء را داخل پرانتز بذار. پرانتز روشن میکنه که با یک عبارت طرف هستیم.
مثلاً name => ({name: name}) شیئی با ویژگی name میسازه. شکل بلندتر آن هم name => { return {name: name}; } است. هر دو درستاند؛ اما حذف پرانتز در شکل کوتاه میتونه خروجی را به undefined تبدیل کنه. این همان مقداریه که تابع بدون return برمیگردونه.
در کد پایین قرار نیست تابعها اجرا یا چاپ جداگانه بشن؛ فقط دستور آخر دو مقدار را چاپ میکنه. اول بررسی کن first چه چیزی برمیگردونه، بعد سراغ second برو. خطای رایج اینه که صرف دیدن value: تصور کنیم حتماً یک شیء ساخته شده؛ جای آکولاد و وجود پرانتز در معنی کد اثر دارد.
const first = n => { value: n * 2 };
const second = n => ({ value: n * 2 });
console.log(first(3), second(3));
فعالیت شما
مقدار دو ورودی console.log را از چپ به راست انتخاب کن.