سوال در رابطه با Best Practice با Arrow function

پرسیده شده
فعالیت 937 روز پیش
دیده شده 391 بار
0

سلام. وقتی که تعریف یک تابع رو به صورت کامل داخل یک شرط قرار بدیم چه تفاوتی داره که از ساختار دوم با Arrow Function استفاده کنیم؟

if(currentUser) {
    function test() {
        console.log('Nope.');
    }
}
let test;
if(currentUser) {
    test = () => {
        console.log('Yup.');
    }
}
فایل پیوست

قاسمی
قاسمی

10 مهر 00

0
حذف شده

سلام خدمت شما. در حالت دوم چون یک متغییر با let تعریف شده امکان تغییر اون وجود داره و این ممکنه باعث بشه اون تابع در ادامه در دسترس نباشه و همین باعث خطا بشه.خوانایی ضعیف تری هم نسبت به حالت اول داره.

فایل پیوست

کیوان علی محمدی

توسط

کیوان علی محمدی

12 مهر 00

حذف شده
ولی طبق همین جلسه دقیقه 18:40 استاد فرمودن ساختار دوم بهره! من الان متوجه نمیشم چجوری بهتره. اگر از حالت اول بخوایم استفاده کنیم که چون داخل یه بلاک شرطی تعریف شده اگر بیرون از شرط invoke بشه و شرط True نباشه کاملا به خطا می خوره چون اصلا تعریف نشده و خطاهای Undefined میده. از طرفی کد دومی هم همینطور اگر شرط درست نباشه و تابع بیرون از بلاک invoke بشه خطا میده که test یک تابع نیست!
قاسمی

12 مهر 00

حذف شده
اینو راست میگه چطوری این کار را میشه انجام داد؟
Mahdiabedini

17 مهر 00

حذف شده
اینو راست میگه چطوری این کار را میشه انجام داد؟
Mahdiabedini

17 مهر 00