Задать вопрос
@weredy

Почему я спокойно меняю контекст и функция продолжает работать?

function(val){
            $.getJSON("http://178.248.64.227/orm/?first_name="+val+"&callback=?",function(data){
              console.log(this);
              if (data)
                this.setState({
                      displayedContacts: data
                })
              else
                this.setState({
                      displayedContacts: [{first_name: "Не найдено"}]
                })
            }.bind(this));
            }


Вот в этом коде запускается колбэк функция в $.getJSON. Если посмотреть её this то там jquery куча свойств типа url, responseFields и.т.д. Я спокойно подменяю контекст своим и всё продолжает прекрасно работать. Как это понимать?
  • Вопрос задан
  • 92 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
jQuery в любом случае делает свой контекст и исполняет callback с ним https://github.com/jquery/jquery/blob/f18ca7bfe0f5...

т.е. контекст вашей функции все равно переопределяется при каждом вызове
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы