Muktadha kupitia Tofauti katika JavaScript
Suluhisho ni lifuatalo: katika kitendaji kikuu tuandike
this kwa tofauti yoyote na tofauti hii
itapatikana katika kitendaji ndani, kama
tofauti zote (kawaida tofauti hii huitwa
self). Kwa njia hii tutapeleka
this kutoka kwenye kitendaji kikuu hadi kwenye kitendaji ndani:
"use strict";
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
console.log(this.value); // itatoa 'text'
let self = this; // tuandike this kwa tofauti yoyote, kwa mfano, kwenye self
function child() {
console.log(self.value); // itatoa 'text'
}
child();
}
Acha iwe na msimbo kama huu:
<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;
}
}
Mwandishi wa msimbo alitaka, ili kupoteza umakini
kwenye skrini ionyeshe mraba wa nambari kutoka value
ya kuingiza. Hata hivyo, kwa sababu fulani kupoteza umakini
kwenye konsoli huleta hitilafu. Sahihisha hitilafu
ya mwandishi wa msimbo. Andika maandishi, ambayo wewe
utatoa maelezo kwa mwandishi wa msimbo, kwa nani ilitokea
hitilafu yake.