Konteks deur middel van 'n veranderlike in JavaScript
Die oplossing is soos volg: in die buitefunksie skryf ons
this in enige veranderlike en hierdie veranderlike
sal toeganklik wees in die binnenste funksie, net soos
alle veranderlikes (hierdie veranderlike word gewoonlik
self genoem). Op hierdie manier dra ons
this van die buitefunksie na die binnenste funksie oor:
"use strict";
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
console.log(this.value); // sal 'text' uitvoer
let self = this; // skryf this in enige veranderlike, byvoorbeeld, self
function child() {
console.log(self.value); // sal 'text' uitvoer
}
child();
}
Gestel daar is so 'n kode:
<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;
}
}
Die outeur van die kode wou hê dat met die verlies van fokus
die kwadraat van die getal uit value
van die invoer op die skerm vertoon word. Maar om een of ander rede, met die verlies van fokus,
verskyn daar 'n fout in die konsole. Korrigeer die outeur se fout
. Skryf 'n teks waarin jy
'n verduideliking aan die outeur gee oor waarom sy
fout ontstaan het.