‎‎تابع‎call()‎‎ جاوااسكريپJavaScript Function cal()‎ -‎

Previous >    <Next  

‎‎استفاده مجدد متدMethod Reuse -‎

‎با متد‎call( )‎ ميتوان متد نوشته شئي را براي شئ هاي ديگر استفاده ‎‎نمود.

‎‎همه توابع متدندAll Functions are Methods -‎

‎در جاوااسكريپت همه توابع متد ميباشند .اگر تابعي متد شئ جاوااسكريپت نباشد، آن تابعي از شئ ‎سراسري‎(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();  

--(go to editor for change code and run)

‎‎در مثال فوق‎this‎ به شئperson اشاره ميكند .

this.firstName‎يعني fistName مربوط به this وبطور مشابه this.lastName يعني lastName مربوط ‎بهthis و ...

‎‎كي وردthis جيست

‎در جاوااسكريت كي ورد‎this‎ بيك شئ اشاره دارد .كدام شئ ، بستگي به نحوي فراخواني ‎يا استفاده دارد.

‎‎كي ورد‎this‎ باشياء مختلف وابسته به استفاده ، اشاره ميكند .مطابق زير :

‎‎توجه ـ‎this‎ متغير نيست، آن يك كلمه رزرو شده است .نميتوان مقدارآن را تغييرداد .

‎در موردthis در بحش JavaScript this ‎اطلاعات كاملتري را مطالعه فرمائيد.

‎‎متد‎call( )‎ جاوااسكريپت

‎‎متد‎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);

--(go to editor for change code and run)

‎در مثال فوق متدfullName ازperson براي شئperson1 فراخوان ميشود .درآن ازمتدcall ‎استفاده شده است . اين دستور مطابق زير است.

person.fullName.call(person1)

‎‎مثال ـ مشابه مثال قبلي متد براي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);

--(go to editor for change code and run)

‎‎متد‎call()‎‎ با آرگومان

‎‎متد‎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");

--(go to editor for change code and run)


Previous >    <Next