sid
sid
خواندن ۲ دقیقه·۳ سال پیش

کلیدواژه this در جاوا اسکریپت

کلیدواژه this به شیء فعلی در تابع در حال جریان اشاره میکند.

1- استفاده از this در method ها :

به شیء فعلی اشاره میکند.

شیء فعلی در مثال بالا Car است و this.color به رنگ ماشین اشاره دارد.

در متد display نیز object مورد نظر Car است.هر چند این تابع خارج از object تعریف شده است اما چون
تابع متعلق به Car است ، کلیدواژه this نیز به آن اشاره دارد.


کلیدواژه this  به object  فعلی که همان person  است بازمیگردد
کلیدواژه this به object فعلی که همان person است بازمیگردد

2- استفاده از this در خارج از هر تابعی :

در این صورت به شیء سراسری که Window است اشاره میکند.

کد اجرا شده در مرورگر
کد اجرا شده در مرورگر

توجه : اگر حالت strict mode فعال باشد ، خروجی متفاوت است.

3- استفاده از this در constructor function ها :

هنگامی که از کلیدواژه new استفاده می شود ، یک object جدید و خالی ایجاد می شود.

با ایجاد شی a و صدا زدن متد function یک شی خالی ایجاد می شود و کلید واژه this به این شی جدید اشاره میکند.

4- استفاده از this در توابع تو در تو (Nested functions) :

این جا this در یک Call back function استفاده شده است . در نتیجه به شی Window اشاره میکند. به همین دلیل خروجی undefined است.برای رفع این مشکل چندین راه حل وجود دارد .

راه حل اول : میتوان با پاس دادن شی مورد نظر (Movie) به شکل زیر خروجی مورد نظر را دریافت کرد.

راه حل دوم : میتوان با ساخت یک متغیر جدید در متد ShowActors و انتساب دادن شی Movie به آن ، این مشکل را رفع کرد.

5-استفاده از this در کلاس ها :

به کلاس فعلی اشاره میکند.

6- استفاده از this در arrow function ها :

رفتار arrow function ها مقداری متفاوت است.در این نوع توابع،this به شی فعلی اشاره نمیکند. بلکه به شی سراسری اشاره میکند.(Window)به همین دلیل استفاده از کلیدواژه this در arrow function ها توصیه نمیشه.










شاید از این پست‌ها خوشتان بیاید