Konteks melalui Variabel dalam JavaScript
Solusinya adalah sebagai berikut: dalam fungsi luar, tulis
this ke dalam variabel apa pun dan variabel ini
akan dapat diakses di dalam fungsi dalam, seperti
semua variabel lainnya (biasanya variabel ini disebut
self). Dengan demikian, kita meneruskan
this dari fungsi luar ke fungsi dalam:
"use strict";
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
console.log(this.value); // akan menampilkan 'text'
let self = this; // tulis this ke variabel apa pun, misalnya, ke self
function child() {
console.log(self.value); // akan menampilkan 'text'
}
child();
}
Misalkan diberikan kode seperti ini:
<input id="elem" value="3">
"use strict";
let elem = document.querySelector('#elem');
elem.addEventListener('blur', func);
function func() {
alert( square() );
function square() {
return this.value * this.value;
}
}
Penulis kode ingin agar saat kehilangan fokus,
kuadrat dari angka di value
input ditampilkan di layar. Namun, entah mengapa saat kehilangan fokus,
error muncul di konsol. Perbaiki kesalahan
dalam kode penulis. Tulis teks di mana Anda
menjelaskan kepada penulis kode, mengapa
kesalahannya terjadi.