# Контекст через переменную в 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` инпута. Однако, почему-то при потери фокуса в консоль выдается ошибка. Исправьте ошибку автора кода. Напишите текст, в котором вы дадите объяснение автору кода, почему возникла его ошибка.

← →
↑
en ru