Fungsi Call JavaScript

penggunaan ulang metode

Menggunakan call() Metode, Anda dapat menulis metode yang dapat digunakan di berbagai objek.

Fungsi adalah metode objek

Pada JavaScript, fungsi adalah metode objek.

Jika fungsi bukan metode objek JavaScript, maka itu adalah fungsi objek global (lihat bab sebelumnya).

Contoh di bawah ini menciptakan objek dengan tiga atribut (firstName,lastName,fullName)。

Contoh

var person = {
    firstName:"Bill",
    lastName: "Gates",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
person.fullName();		// Akan mengembalikan "Bill Gates"

Coba Sendiri

Atribut fullName adalahMetode.Objek person adalah metode iniPemilik.

Atribut fullName milik Metode objek person.

Metode JavaScript call()

call() Metode adalah metode JavaScript yang ditetapkan sebelumnya.

Dapat digunakan untuk memanggil metode milik objek pemilik yang dijadikan parameter.

Melalui call()Anda dapat menggunakan metode milik objek lain.

Pemanggilan metode fullName objek person, dan digunakan untuk person1:

Contoh

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);  // Akan mengembalikan "Bill Gates"

Coba Sendiri

Pemanggilan metode fullName objek person, dan digunakan untuk person2:

Contoh

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);  // akan mengembalikan "Steve Jobs"

Coba Sendiri

Method call() dengan parameter

Method call() dapat menerima parameter:

Contoh

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");

Coba Sendiri