Найти в Дзене
Илья Дмитриев

JavaScript Работа с this

Напишем функцию которая внутри себя обращается к this: Пока не ясно к чему обращается этот this. Это будет понятно когда функция будет вызвана. После того как мы привяжем нашу функцию к input, this начнет указывать на этот input: Прелесть заключается в том что this будет указывать только на свой input не взирая на то что функция только одна. Если this не привязать ни к какому элементу, вот так: То в этом случае this будет указывать на объект window. В любой функции можно написать this. Но вот что именно будет лежать в этом this зависит от контекста, в котором была вызвана функция. Напишем функцию в функции. Внешняя функция будет называется hello, а внутренняя - hi. Если объявить переменную во внешней функции - она будет видна во внутренней: Привяжем наша функция hello к input, в таком случае this в ней будет указывает на input: Внутри функции hello мы обращаемся к input через this, но это не совсем правильно, так как контекст у этой функции иной и this не указывает на input. Невз

Напишем функцию которая внутри себя обращается к this:

Добавьте описание
Добавьте описание

Пока не ясно к чему обращается этот this. Это будет понятно когда функция будет вызвана.

После того как мы привяжем нашу функцию к input, this начнет указывать на этот input:

данный скрипт выведет "привет"
данный скрипт выведет "привет"

Прелесть заключается в том что this будет указывать только на свой input не взирая на то что функция только одна.

Добавьте описание
Добавьте описание

Если this не привязать ни к какому элементу, вот так:

Добавьте описание
Добавьте описание

То в этом случае this будет указывать на объект window.

В любой функции можно написать this. Но вот что именно будет лежать в этом this зависит от контекста, в котором была вызвана функция.

Напишем функцию в функции. Внешняя функция будет называется hello, а внутренняя - hi. Если объявить переменную во внешней функции - она будет видна во внутренней:

Добавьте описание
Добавьте описание

Привяжем наша функция hello к input, в таком случае this в ней будет указывает на input:

Добавьте описание
Добавьте описание

Внутри функции hello мы обращаемся к input через this, но это не совсем правильно, так как контекст у этой функции иной и this не указывает на input. Невзирая на то что переменные функции hello видны в функции hi, this у них все таки разный.

Один из способов решения проблемы это создать во внешней функции hello переменную (например, в self) и записать в нее this. Такая переменная будет доступна во внутренней функции hi. Так мы сможем передать thisво внутреннюю функцию.

-8

Эту ситуацию можно решить через стрелочные функции ES6. Тогда this будет таким же, как и this снаружи

-9