Konteks Fungsi yang Tidak Terikat dalam JavaScript
Mari kita lihat apa yang terjadi jika dalam sebuah fungsi
ditulis this, tetapi tidak diikat ke
elemen apa pun, seperti ini:
function func() {
console.log(this);
}
func();
Dalam kasus ini, hasilnya tergantung pada apakah
kita menggunakan mode ketat (strict mode)
atau tidak. Jika mode tidak ketat,
maka this akan berisi referensi ke
window:
function func() {
console.log(this); // referensi ke window
}
func();
Dan jika mode ketat, maka this akan
berisi undefined:
"use strict";
function func() {
console.log(this); // undefined
}
func();
Dari penjelasan di atas, mungkin terlihat bahwa
dalam mode ketat this akan selalu
undefined. Tapi tidak! Jika hanya
menulis this di luar fungsi, maka isinya
akan menjadi referensi ke window terlepas
dari modenya:
"use strict";
console.log(this); // dalam this referensi ke window
Kesimpulan
Dalam fungsi apa pun, kita dapat menulis this,
ini tidak akan menyebabkan error JavaScript apa pun.
Tapi apa yang sebenarnya akan terkandung dalam this ini
tidak ditentukan sampai saat fungsi dipanggil.
Selain itu, pada pemanggilan fungsi yang berbeda, this
dapat memiliki nilai yang berbeda. Semuanya tergantung
pada konteks di mana fungsi tersebut dipanggil.