Контекст кроз променљиву у 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
уносног поља. Међутим, из неког разлога при губитку фокуса
у конзоли се појављује грешка. Исправите грешку
аутора кода. Напишите текст у ком ћете
објаснити аутору кода зашто је настала
његова грешка.