وظيفة 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

طريقة JavaScript call()

call() الطرق هي طرق JavaScript مسبقة التحديد.

يمكن استخدامها لاستدعاء طرق موضوع المالك كمعامل.

من خلال call()، يمكنك استخدام طريقة تخصيص لآخر موضوع.

هذا المثال يستدعي طريقة fullName لمستند person ويستخدمها لـ 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 لمستند person ويستخدمها لـ 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");

جرب بنفسك