Call Vs Bind Javascript

4 min read Jun 24, 2024
Call Vs Bind Javascript

Call vs Bind dalam JavaScript

Dalam dunia JavaScript, call dan bind adalah dua metode yang digunakan untuk mengatur konteks this pada sebuah fungsi. Meskipun keduanya terlihat mirip, mereka memiliki perbedaan penting dalam cara mereka bekerja dan penerapannya. Mari kita bahas perbedaannya secara detail.

Memahami "this" dalam JavaScript

Sebelum kita membahas call dan bind, penting untuk memahami konsep this dalam JavaScript. This adalah sebuah kata kunci yang merujuk ke objek yang saat ini sedang dieksekusi. Perilaku this sangat bergantung pada konteks pemanggilan fungsi.

Contoh:

function sayHello() {
  console.log("Hello, " + this.name + "!");
}

let person = {
  name: "John"
};

sayHello.call(person); // Output: Hello, John!

let anotherPerson = {
  name: "Jane"
};

sayHello.call(anotherPerson); // Output: Hello, Jane!

Pada contoh di atas, this dalam fungsi sayHello merujuk ke objek yang diberikan sebagai argumen pertama dari metode call.

Call

Metode call memungkinkan kita untuk memanggil fungsi dengan konteks this yang ditentukan.

Sintaks:

function.call(thisArg, arg1, arg2, ...)

Penjelasn:

  • thisArg: Objek yang akan menjadi konteks this untuk fungsi.
  • arg1, arg2, ...: Argumen yang akan dilewatkan ke fungsi.

Contoh:

function sayHello(message) {
  console.log(message + ", " + this.name + "!");
}

let person = {
  name: "John"
};

sayHello.call(person, "Good Morning"); // Output: Good Morning, John!

Bind

Metode bind mirip dengan call, tetapi alih-alih langsung memanggil fungsi, bind mengembalikan fungsi baru yang terikat dengan konteks this yang ditentukan.

Sintaks:

function.bind(thisArg, arg1, arg2, ...)

Penjelasn:

  • thisArg: Objek yang akan menjadi konteks this untuk fungsi baru.
  • arg1, arg2, ...: Argumen yang akan dilewatkan ke fungsi baru.

Contoh:

function sayHello(message) {
  console.log(message + ", " + this.name + "!");
}

let person = {
  name: "John"
};

let boundSayHello = sayHello.bind(person, "Hello");
boundSayHello(); // Output: Hello, John!

Kapan Menggunakan Call dan Bind?

  • Call: Gunakan call ketika Anda ingin memanggil fungsi dengan konteks this yang ditentukan dan argumen yang ditentukan.
  • Bind: Gunakan bind ketika Anda ingin membuat versi baru dari fungsi yang terikat dengan konteks this yang ditentukan dan argumen yang ditentukan, dan kemudian memanggil fungsi baru itu.

Perbedaan Utama

Fitur Call Bind
Pemanggilan Memanggil fungsi secara langsung Mengembalikan fungsi baru
Konteks this Diatur pada saat panggilan Diatur saat bind dipanggil
Argumen Dapat dilewatkan pada saat panggilan Dapat dilewatkan pada saat bind

Kesimpulan

Call dan bind adalah metode yang sangat berguna untuk mengontrol konteks this dalam fungsi JavaScript. Memahami perbedaan mereka dan kapan harus menggunakannya adalah hal yang penting untuk menulis kode JavaScript yang benar dan efisien.

Related Post


Latest Posts