Dalam JavaScript, metode call, apply, dan bind digunakan untuk mengubah konteks suatu fungsi, atau untuk menetapkan nilai this di dalam suatu fungsi. Mereka biasanya digunakan dalam situasi di mana Anda perlu meneruskan suatu fungsi sebagai panggilan balik, atau ketika Anda ingin menggunakan kembali suatu fungsi dengan konteks atau argumen yang berbeda.

Berikut beberapa contoh dan kasus penggunaan untuk setiap metode:

  1. Telepon

Metode call memungkinkan Anda memanggil fungsi dengan nilai this tertentu dan argumen yang diberikan secara individual.

Contoh:

const person = {
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}

const person1 = {
  firstName: "John",
  lastName: "Doe"
}

const person2 = {
  firstName: "Mary",
  lastName: "Smith"
}

console.log(person.fullName.call(person1)); // Output: "John Doe"
console.log(person.fullName.call(person2)); // Output: "Mary Smith"

Pada contoh di atas, metode call digunakan untuk memanggil fungsi fullName dengan person1 dan person2 sebagai nilai this.

Kasus penggunaan:

call dapat digunakan untuk memanggil fungsi dengan konteks tertentu, yang berguna bila Anda memiliki fungsi yang bergantung pada konteks tertentu. Misalnya, Anda mungkin memiliki fungsi yang beroperasi pada objek tertentu, dan Anda ingin memanggil fungsi tersebut dengan objek berbeda.

2. Terapkan

Metode apply mirip dengan call, namun memerlukan serangkaian argumen, bukan argumen yang diberikan satu per satu.

Contoh:

const numbers = [5, 6, 2, 3, 7];

const max = Math.max.apply(null, numbers);

console.log(max); // Output: 7

Pada contoh di atas, metode apply digunakan untuk mencari nilai maksimum dalam array angka.

Kasus penggunaan:

apply dapat digunakan untuk memanggil fungsi dengan array argumen, yang berguna ketika Anda memiliki fungsi yang menggunakan sejumlah argumen variabel. Misalnya, Anda mungkin memiliki fungsi yang menggunakan sejumlah argumen dan Anda ingin memanggilnya dengan serangkaian argumen.

3.Mengikat

Metode bind mengembalikan fungsi baru dengan nilai dan argumen this yang ditentukan.

Contoh:

const person = {
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}

const person1 = {
  firstName: "John",
  lastName: "Doe"
}

const person2 = {
  firstName: "Mary",
  lastName: "Smith"
}

const fullName1 = person.fullName.bind(person1);
const fullName2 = person.fullName.bind(person2);

console.log(fullName1()); // Output: "John Doe"
console.log(fullName2()); // Output: "Mary Smith"

Dalam contoh di atas, metode bind digunakan untuk membuat dua fungsi baru fullName1 dan fullName2 yang masing-masing terikat ke person1 dan person2.

Kasus penggunaan:

bind dapat digunakan untuk membuat fungsi baru yang terikat pada konteks tertentu. Ini berguna ketika Anda memiliki fungsi yang perlu dipanggil dengan konteks tertentu, namun Anda tidak ingin mengubah fungsi aslinya. Misalnya, Anda mungkin memiliki fungsi yang digunakan dalam beberapa konteks dan Anda ingin membuat fungsi baru untuk setiap konteks.