توابع Call در JavaScript

تکرار روش

با استفاده از 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");

به طور مستقیم امتحان کنید