تماس Call جی‌اف‌اس

روش‌های تکراری

با استفاده از call() روش، شما می‌توانید روش‌هایی بنویسید که می‌توانند روی شی‌های مختلف استفاده شوند.

توابع روش‌های شی هستند

در JavaScript، توابع روش‌های شی هستند.

اگر یک تابع نه روش یک شی JavaScript است، پس آن تابع یک تابع از شی جهانی است (مطابق فصل پیش‌تر).

در مثال زیر یک شی با سه ویژگی ایجاد شده است (firstName،lastName،fullName))

مثال

var person = {
    firstName:"Bill",
    lastName: "Gates",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
person.fullName();		// بازخورد "Bill Gates" را خواهد داد

آپ خود سجاوئیں

ویژگی fullName یکروشاست. شی person روش این روش استمالک.

ویژگی fullName متعلق به روش‌های شی person.

روش call() در JavaScript

call() روش‌ها روش‌های پیش‌تعریف شده JavaScript هستند.

این می‌تواند برای فراخوانی روش‌هایی که به عنوان پارامتر به شی صاحب استفاده می‌شود، استفاده شود.

از طریق call()، شما می‌توانید از روش‌های متعلق به یک شی دیگر استفاده کنید.

مثال می‌خواهد از روش fullName شخص استفاده کند و آن را برای person1 استفاده کند:

مثال

var person = {
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
}
var person1 = {
    firstName:"Bill",
    lastName: "Gates",
}
var person2 = {
    firstName:"Steve",
    lastName: "Jobs",
}
person.fullName.call(person1);  // بازخورد "Bill Gates" را خواهد داد

آپ خود سجاوئیں

مثال می‌خواهد از روش fullName شخص استفاده کند و آن را برای person2 استفاده کند:

مثال

var person = {
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
}
var person1 = {
    firstName:"Bill",
    lastName: "Gates",
}
var person2 = {
    firstName:"Steve",
    lastName: "Jobs",
}
person.fullName.call(person2);  // واپس "Steve Jobs" لینا جائے گا

آپ خود سجاوئیں

پارامٹر کا لینا والا call() مہم

call() مہم کو اس بجائے پارامٹر قبول کرسکتا ہے:

مثال

var person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}
var person1 = {
  firstName:"Bill",
  lastName: "Gates"
}
person.fullName.call(person1, "Seattle", "USA");

آپ خود سجاوئیں