Konteksti përmes ndryshores në JavaScript
Zgjidhja është si vijon: në funksionin e jashtëm do të shkruajmë
this në çdo ndryshore dhe kjo ndryshore
do të jetë e arritshme në funksionin e brendshëm, ashtu
si të gjitha ndryshoret (zakonisht kjo ndryshore quhet
self). Kështu ne do të kalojmë
this nga funksioni i jashtëm në atë të brendshëm:
"use strict";
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
console.log(this.value); // do të shfaqë 'text'
let self = this; // shkruajmë this në çdo ndryshore, për shembull, në self
function child() {
console.log(self.value); // do të shfaqë 'text'
}
child();
}
Le të jepet kodi i mëposhtëm:
<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;
}
}
Autori i kodit deshi që pas humbjes së fokusit
të shfaqet në ekran katrori i numrit nga value
i inputit. Megjithatë, për disa arsye, kur humbet fokusi
në konsol shfaqet një gabim. Korrigjoni gabimin
e autorit të kodit. Shkruani një tekst ku do t'i
jepni një shpjegim autorit të kodit, pse u shfaq
gabimi i tij.