JavaScript this Keyword
this چیست؟
در جاوا اسکریپت کلیدواژه this
به شیءای که به آن تعلق دارد اشاره میکند. مقدار آن بسته به اینکه کجا
استفاده شود متفاوت خواهد بود:
- در تابع شیء، به شیء مالک اشاره دارد.
- به تنهایی، به شیء سراسری (global) اشاره دارد.
- در یک تابع، به شیء سراسری اشاره دارد.
- در یک رخداد، به عنصری که رخداد را دریافت میکند اشاره دارد.
- توابع شیء نظیر
call()
یاapply()
میتوانندthis
را به هر شیءای ارجاع دهند.
this در تابع شیء
در یک تابع شیء، this
به مالک (owner) تابع شیء اشاره دارد. در مثال زیر
this
به شیء person اشاره میکند. شیء person مالک
تابع شیء fullName است.
this به تنهایی
زمای که به تنهایی مورد استفاده قرار گیرد، مالک، شیء سراسری (Global object) است و
بنابراین this
به شیء سراسری اشاره خواهد داشت.
در یک مرورگر شیء سراسری [object window]
است.
this در یک تابع
در یک تابع جاوا اسکریپت، this
به صورت پیشفرض به مالک تابع یعنی همان شیء سراسری که
[object window]
است اشاره دارد.
this در یک رخداد
در این جا this
به عنصری که رخداد را دریافت میکند اشاره دارد.
خروجی:
The JavaScript this Keyword
ارتباط صریح بین توابع
توابع شیء call()
و apply()
توابع از پیش تعریف شده جاوا اسکریپت هستند. از هر دوی آنها
میتوان برای فراخواندن یک تابع شیء به عنوان آرگومان یک شیء دیگر استفاده کرد.
دربخشهای بعدی در مورد این توابع بیشتر یاد خواهیم گرفت.
در مثال زیر هنگامی که person1.fullName با آرگومان person2
فراخوانی میشود، this
به person2 اشاره میکند، حتی اگر تابع شیء person1 باشد.