صدا زدن تابع در JavaScript
یادگیری JavaScriptاستفاده مجدد از متد
با روش ()call می توانید یک روش را که می تواند در اشیاء مختلف مورد استفاده قرار گیرد بنویسید.
تمام توابع متدها هستند
در جاوا اسکریپت تمام توابع روش شی هستند.
اگر یک تابع روش یک شیء جاوا اسکریپت نیست، این تابع یک شیء جهانی است (نگاه کنید به فصل قبلی).
مثال زیر یک شیء با 3 خواص، firstName، lastName، fullName ایجاد می کند.
var person = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
person.fullName(); // Will return "John Doe"
مشاهده مثالکلیدواژه this
در تعریف تابع، this به صاحب تابع اشاره دارد.
در مثال بالا، this این شیء شخصی است که "دارای" تابع fullName است.
به عبارت دیگر، this.firstName به معنای property اول نام این شی است.
متد call در جاوا اسکریپت
روش ()call یک روش جاوااسکریپ پیش فرض است.
این می تواند برای فراخوانی (call) یک روش با یک شیء مالک به عنوان یک استدلال (پارامتر) استفاده شود.
با ()call ، یک شیء می تواند از یک متد متعلق به یک شی دیگر استفاده کند.
این مثال روش fullName شخص را فرا می گیرد، با استفاده از آن در person1:
var person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
var person1 = {
firstName:"John",
lastName: "Doe",
}
var person2 = {
firstName:"Mary",
lastName: "Doe",
}
person.fullName.call(person1); // Will return "John Doe"
مشاهده مثالاین مثال روش fullName شخص را فرا می گیرد، با استفاده از آن در person2:
var person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
var person1 = {
firstName:"John",
lastName: "Doe",
}
var person2 = {
firstName:"Mary",
lastName: "Doe",
}
person.fullName.call(person2); // Will return "Mary Doe"
مشاهده مثالروش ()call با آرگومان
روش () call می تواند استدلال را قبول کند:
var person = {
fullName: function(city, country) {
return this.firstName + " " + this.lastName + "," + city + "," + country;
}
}
var person1 = {
firstName:"John",
lastName: "Doe",
}
person.fullName.call(person1, "Oslo", "Norway");
مشاهده مثال
نظر شما
>