@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
jQuery в любом случае делает свой контекст и исполняет callback с ним https://github.com/jquery/jquery/blob/f18ca7bfe0f5...

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

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

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