در توابع معمولی، مقدار this بستگی به نحوه فراخوانی تابع دارد. اگر تابع به عنوان یک متد از یک شیء فراخوانی شود، this به آن شیء اشاره خواهد کرد. در غیر این صورت، this به undefined (در حالت strict mode) یا به window (در حالت non-strict mode) اشاره میکند. اما this در توابع arrow به مقدار this در زمان تعریف تابع اشاره میکند و نه به شیءای که تابع به عنوان یک متد از آن فراخوانی شده باشد.
همانطور که بقیه گفتن توابع arrow مقدار this را در زمان تعیرف شدن میگیرن نه جایی که صدا زده میشن اینجا تابع ما در اسکوپ گلوبال تعیرف شده پس مقدار this اون میشه آبجکت window اما مقدار this در توابع معمولی اشاره به آبجکتی میکنه که اون رو صدا زده و ربطی به جایی که تعریف شدن نداره
در توابع معمولی، مقدار this بستگی به نحوه فراخوانی تابع دارد. اگر تابع به عنوان یک متد از یک شیء فراخوانی شود، this به آن شیء اشاره خواهد کرد. در غیر این صورت، this به undefined (در حالت strict mode) یا به window (در حالت non-strict mode) اشاره میکند.
اما this در توابع arrow به مقدار this در زمان تعریف تابع اشاره میکند و نه به شیءای که تابع به عنوان یک متد از آن فراخوانی شده باشد.
. درسته ممنونم. تو ویدیو آخر یه خرده توضیح دادم. کلن تو این فانکشنا لوکال بایندیگ اتفاق نمیافته.
ب زبان ساده
ارو فانکشن ها this ندارند از execution context نشون میگیرن ( یه ب نحوی دیگه جایی که نوشته شدن) l ولی برای اون یکی اینطور نیست :)
. درسته ممنونم. تو ویدیو آخر یه خرده توضیح دادم. کلن تو این فانکشنا لوکال بایندیگ اتفاق نمیافته.
همانطور که بقیه گفتن توابع arrow مقدار this را در زمان تعیرف شدن میگیرن نه جایی که صدا زده میشن
اینجا تابع ما در اسکوپ گلوبال تعیرف شده پس مقدار this اون میشه آبجکت window
اما مقدار this در توابع معمولی اشاره به آبجکتی میکنه که اون رو صدا زده و ربطی به جایی که تعریف شدن نداره
ممنونم. تو ویدیو آخر یه خرده توضیح دادم. کلن تو این فانکشنا لوکال بایندیگ اتفاق نمیافته.
@@MicroFrontend
ممنون
هنوز وقت نکردم ببینمش و سره فرصت میبینمش ایشاله
منتظر ادامه پلی لیست دام هستم😉