@foxiko

Что влияет на this в этом случае?

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

Обрезанная версия объекта:
const fileSelector = {
    get searchButton() {
        return document.querySelector('#search-img');
    },
    switchLoadingImg: () => {
        loadingImg = document.querySelector('#loading-img');
        const loadingDisplay = loadingImg.style.display;
        loadingImg.style.display = loadingDisplay === 'none' ? 'block' : 'none';
    },
    clickToSearch: () => {
        this.switchLoadingImg();
    },
};

document.addEventListener('DOMContentLoaded', () => {
    fileSelector.searchButton.addEventListener('click', () => {
        fileSelector.clickToSearch();
    });
});


Когда срабатывает fileSelector.clickToSearch, выходит ошибка, что this.switchLoadingImg - это не функция, а undefined. Почему она не обнаруживается?
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
Потому что не нужно бездумно использовать стрелочные функции где попало.

https://learn.javascript.ru/arrow-functions#u-stre...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы