واژهکلیدی this در JavaScript
- صفحه قبلی م��د سختگیرانه JS
- صفحه بعدی توابع فلاخن JS
مثال
lastName : \ id : 678 , fullName : function() { return this.firstName + " " + this.lastName; } };
this چیست؟
JavaScript این
کلید اشاره دارد به object متعلق به آن.
این دارای ارزشهای مختلفی دارد که بستگی به مکان استفاده دارد:
- در method،
این
به object owner اشاره دارد. - در حالت单独،
این
به object global اشاره دارد. - در تابع،
این
به object global اشاره دارد. - در تابع، در حالت strict،
این
این نامگذاری نشده است. - در رویداد،
این
به element دریافتکننده رویداد اشاره دارد.
مانند call()
و apply()
این method میتواند this را به هر object دیگری مرتبط کند.
this در method
در method object،این
به owner method اشاره دارد.
در مثال بالای صفحه،این
به object person اشاره دارد.
object person مالک method fullName است.
fullName : function() { return this.firstName + " " + this.lastName; }
this单独
در حالت单独 استفاده، owner object است، بنابراین، این
به object global اشاره دارد.
در window مرورگر، object global است [object Window]
:
مثال
var x = this ;
در حالت strict، اگر به تنهایی استفاده شود، این
به object global اشاره دارد [object Window]
:
مثال
"use strict" ; var x = this ;
this در تابع (default)
binding default در تابع JavaScript، این
。
بنابراین، در تابع،این
به object global اشاره دارد [object Window]
。
مثال
function myFunction() { return this ; }
this در تابع (Strict mode)
Strict mode of JavaScript نمیتواند binding default را اجازه دهد.
بنابراین، در استفاده از آن در تابع، در حالت strict،این
این نامگذاری نشده است (undefined
})
مثال
"use strict" ; function myFunction() { return this ; }
this در event handler
در event handler HTML،این
به element HTML دریافتکننده این رویداد اشاره دارد :
مثال
<button onclick="this.style.display='none'"> برای حذف من کلیک کنید ! </button>
method binding object
در این مثال،این
مثال
lastName : \ id : 678 , myFunction : function() { return this ; } };
مثال
lastName : \ id : 678 , fullName : function() { return this.firstName + " " + this.lastName; } };
به عبارت دیگر،this.firstName معنادارد اینمجرد (person) شیء firstName ویژگیها.
پیوندنمایاضاهایفونکشن
call()
و apply()
روشها روشهای پیشتعریف شده JavaScript هستند.
هر دو میتوانند برای فراخوانی روشهای شیء با استفاده از یک شیء دیگر به عنوان پارامتر استفاده شوند.
میتوانید در بخشهای بعدی این آموزش در مورد call()
و apply()
بیشتر.
در مثال زیر، هنگام استفاده از person2 به عنوان پارامتر در فراخوانی person1.fullName،این
به person2 ارجاع خواهد داد، حتی اگر آن روش person1 باشد:
مثال
var person1 = { fullName: function() { return this.firstName + " " + this.lastName; } } var person2 = { firstName:"Bill", lastName: "Gates", } person1.fullName.call(person2); // بازمیگردد به "Bill Gates"
- صفحه قبلی م��د سختگیرانه JS
- صفحه بعدی توابع فلاخن JS