با متدcall( ) ميتوان متد نوشته شئي را براي شئ هاي ديگر استفاده نمود.
در جاوااسكريپت همه توابع متد ميباشند .اگر تابعي متد شئ جاوااسكريپت نباشد، آن تابعي از شئ سراسري(global object) است) . فصل قبلي را ملاحظه فرمائيد(
مثال ـ در اين مثال شئperson با سه ويژگي firstName,lastName,fullName ايجاد ميشود .
const person = { firstName:"John", lastName: "Doe", fullName: function () { return this.firstName + " " + this.lastName; } } // This will return "John Doe": person.fullName();
در مثال فوقthis به شئperson اشاره ميكند .
this.firstNameيعني fistName مربوط به this وبطور مشابه this.lastName يعني lastName مربوط بهthis و ...
در جاوااسكريت كي وردthis بيك شئ اشاره دارد .كدام شئ ، بستگي به نحوي فراخواني يا استفاده دارد.
كي وردthis باشياء مختلف وابسته به استفاده ، اشاره ميكند .مطابق زير :
توجه ـthis متغير نيست، آن يك كلمه رزرو شده است .نميتوان مقدارآن را تغييرداد .
در موردthis در بحش JavaScript this اطلاعات كاملتري را مطالعه فرمائيد.
متدcall( ) متدي از پيش تعريف شده جاوااسكريپت است .
متد فوق را ميتوان براي فراخواني يك متد با يك شئ مالك مثلarguments براي پارامترها استفاده كرد.
باcall( ) ميتوان براي شئ ازمتد شئ ديگر استفاده كرد .
مثال ـ استفاده متدي ازشئ ديگر براي شئي
const person = { fullName: function() { return this.firstName + " " + this.lastName; } } const person1 = { firstName:"John", lastName: "Doe" } const person2 = { firstName:"Mary", lastName: "Doe" } // This will return "John Doe": person.fullName.call(person1);
در مثال فوق متدfullName ازperson براي شئperson1 فراخوان ميشود .درآن ازمتدcall استفاده شده است . اين دستور مطابق زير است.
مثال ـ مشابه مثال قبلي متد برايperson2 استفاده شده است .
const person = { fullName: function() { return this.firstName + " " + this.lastName; } } const person1 = { firstName:"John", lastName: "Doe" } const person2 = { firstName:"Mary", lastName: "Doe" } // This will return "Mary Doe" person.fullName.call(person2);
متدcall( ) ميتواند همراه آرگومان هم استفاده شود .
مثال ـ متدcall با آرگومان
const person = {
fullName: function(city, country) {
return this.firstName + " " + this.lastName + "," + city + "," + country;
}
}
const person1 = {
firstName:"John",
lastName: "Doe"
}
person.fullName.call(person1, "Oslo", "Norway");