JavaScript-dä üýtgeýji arkaly kontekst
Çözgüt aşakdaky ýaly: daşarky funksiýada
this-i islendik üýtgeýji ýazarys we
bu üýtgeýji içerki funksiýada elýeterli bolar,
ýagny hemme üýtgeýjiler ýaly (köplenç bu üýtgeýjä
self diýilýär). Şeýlelik bilen biz
this-i daşarky funksiýadan içerki
funksiýa geçireris:
"use strict";
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
console.log(this.value); // 'text' görkezer
let self = this; // this-i islendik üýtgeýjä ýazarys, mysal üçin, self-e
function child() {
console.log(self.value); // 'text' görkezer
}
child();
}
Mysal üçin aşakdaky kod berlen:
<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;
}
}
Kodyň awtory, fokus ýitirilende, input-yň
value bahasynyň kwadraty ekrana
çykarylmasyny isläpdir. Ýöne nämä üçin
fokus ýitirilende, konsol ýalňyşlyk
habarnamasyny görkezýär. Kodyň awtorynyň
ýalňyşlygyny düzediň. Kodyň awtoryna,
ýalňyşlygyň nämä üçin ýüze çykanlygy
barada düşündiriş berýän teksti ýazyň.