Контекст через параметр в JavaScript
Существует и другое решение проблемы. Сделаем
так, чтобы функция child принимала
параметр:
function child(param) {
// тут будет код
}
А при вызове этой функции будем передавать
в нее this:
function parent() {
child(this); // передаем параметром this
function child(param) {
// в переменной param лежит переданное содержимое this
}
}
Так как вызов child осуществляется
в родительской функции, то и передаваемый
this указывает на то, что нужно. Затем
этот this попадает в параметр param
и в таком виде и будет доступен внутри функции.
Вот окончательный код:
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
child(this); // передаем параметром this
function child(param) {
console.log(param.value); // выводим value инпута
}
}
Возьмите код из предыдущей задачи и исправьте проблему кода с помощью изученного второго способа.