Задать вопрос
@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 и.т.д. Я спокойно подменяю контекст своим и всё продолжает прекрасно работать. Как это понимать?
  • Вопрос задан
  • 105 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 1
jQuery в любом случае делает свой контекст и исполняет callback с ним https://github.com/jquery/jquery/blob/f18ca7bfe0f5...

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

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

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