kembali ke pelajaran

Ikat fungsi sebagai sebuah metode

Apakah keluarannya?

function f() {
  alert( this ); // ?
}

let user = {
  g: f.bind(null)
};

user.g();

Jawabannya: null.

function f() {
  alert( this ); // null
}

let user = {
  g: f.bind(null)
};

user.g();

Konteks dari pengikatan fungsi sangat sulit diperbaiki. Tidak ada cara untuk merubahnya dilain waktu.

Jadi bahkan ketika kita menjalankan user.g(), fungsi aslinya dipanggil dengan this=null.