کلیدواژه this در JavaScript
یادگیری JavaScriptvar person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
مشاهده مثال"this" چیست؟
در تعریف تابع، this به خود تابع اشاره دارد
در مثال بالا، this به شخص شی اشاره دارد
شخص شیء "دارای" روش fullName است.
اتصال پیش فرض
هنگامی که به تنهایی استفاده می شود، this به شیء سراسری اشاره دارد.
در مرورگر، شیء سراسری [object Window] است:
var x = this;
مشاهده مثالهنگامی که در یک تابع استفاده می شود، this به شیء سراسری اشاره می کند.
function myFunction() {
return this;
}
مشاهده مثالدر حالت strict ، این مشخص نخواهد شد، زیرا حالت strict به اتصال پیش فرض اجازه نمی دهد:
"use strict";
function myFunction() {
return this;
}
مشاهده مثالروش اتصال شیء
در این مثالها، this شیء شخص است (شیء شخص "مالک" تابع است):
var person = {
firstName : "John",
lastName : "Doe",
id : 5566,
myFunction : function() {
return this;
}
};
مشاهده مثالvar person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
مشاهده مثالبه عبارت دیگر: this.firstName به معنای ,ویژگی firstName برای اولین بار از this (شخص) object است.
وابستگی صریح تابع
روش ()call و ()apply متد های از پیش تعریف شده جاوااسکریپت هستند.
آنها هر دو می توانند برای فراخوانی یک شیء با یک شی دیگر به عنوان آرگومان مورد استفاده قرار گیرند.
در این مثال، هنگام فراخوانی person1.fullName با person2 به عنوان آرگومان، this به person2 اشاره می کند، حتی اگر یک روش از person1 باشد:
var person1 = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
var person2 = {
firstName:"John",
lastName: "Doe",
}
person1.fullName.call(person2); // Will return "John Doe"
مشاهده مثال
نظر شما
>