Контекст преку променлива во JavaScript
Решението е следново: во надворешната функција ќе ја запишеме
this во која било променлива и оваа променлива
ќе биде достапна во внатрешната функција, како
и сите променливи (обично оваа променлива се нарекува
self). На овој начин ќе го пренесеме
this од надворешната функција во внатрешната:
"use strict";
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
console.log(this.value); // ќе испише 'text'
let self = this; // ќе ја запишеме this во која било променлива, на пример, во self
function child() {
console.log(self.value); // ќе испише 'text'
}
child();
}
Нека е даден ваков код:
<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;
}
}
Авторот на кодот сакал, при губење на фокусот
на екранот да се прикаже квадратот на бројот од value
на полето за внесување. Сепак, поради некоја причина при губење на фокусот
во конзолата се појавува грешка. Исправете ја грешката
на авторот на кодот. Напишете текст во кој
ќе дадете објаснување до авторот на кодот, зошто се појавила
неговата грешка.