به کد زیر دقت کنید:
اما چرا وقتی از arrow functionها در کلاسهای جاوااسکریپت استفاده میکنیم، مقدار this به خود آبجکتهای کلاس اشاره میکند؟
به عنوان مثال به کد داخل تصویر (که یک کلاس کامپوننت ریاکت است) دقت کنید.
متد handleClick را به صورت arrow function تعریف کردهایم، اما مقدار this به خود آبجکت react element اشاره میکند! (دقیقا برعکس رفتاری که در کد بالا دیدیم)
چرا رفتار arrow functionها در آبجکتها و class fieldهای جاوااسکریپت متفاوت است؟
#interviewquestion #js #react #thiskeyword
@ProGraphs
let obj = {در این کد، متد whatIsThis داخل آبجکت obj تعریف شده است. اما با توجه به اینکه arrow functionها در جاوااسکریپت this ندارند، مقدار this داخل این تابع به آبجکت گلوبال اشاره میکند (و نه به خود آبجکت obj).
whatIsThis: () => {
console.log("this is:", this);
}
};
اما چرا وقتی از arrow functionها در کلاسهای جاوااسکریپت استفاده میکنیم، مقدار this به خود آبجکتهای کلاس اشاره میکند؟
به عنوان مثال به کد داخل تصویر (که یک کلاس کامپوننت ریاکت است) دقت کنید.
متد handleClick را به صورت arrow function تعریف کردهایم، اما مقدار this به خود آبجکت react element اشاره میکند! (دقیقا برعکس رفتاری که در کد بالا دیدیم)
چرا رفتار arrow functionها در آبجکتها و class fieldهای جاوااسکریپت متفاوت است؟
#interviewquestion #js #react #thiskeyword
@ProGraphs