0

Здравстуйте. Вопрос, скорее всего, тривиальный: есть класс

  class Dt {
    displayData(data){ console.log(data) }
    getData(){
     let request = new XMLHttpRequest();
      request.addEventListener('load',
         function(){
             if (request.status === 200) {
                 this.displayData(request.responseText);/*ЗДЕСЬ*/
             } else {
                 console.log("Server Error: " + request.status);
             }     
         }
   }

Как вызвать функцию displayData в нужном контексте? понятно, что this не в тему.

Luca
  • 1
  • нашел ответ https://ru.stackoverflow.com/questions/554290/%d0%9a%d0%b0%d0%ba-%d0%b2%d0%b5%d1%80%d0%bd%d1%83%d1%82%d1%8c-%d0%b7%d0%bd%d0%b0%d1%87%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b8%d0%b7-%d1%81%d0%be%d0%b1%d1%8b%d1%82%d0%b8%d1%8f-%d0%b8%d0%bb%d0%b8-%d0%b8%d0%b7-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%be%d0%b1%d1%80%d0%b0%d1%82%d0%bd%d0%be%d0%b3%d0%be-%d0%b2%d1%8b%d0%b7%d0%be%d0%b2%d0%b0?rq=1 – Luca Jun 25 '17 at 15:07

1 Answers1

0
  request.addEventListener('load', (function(){
      if (request.status === 200) {
          this.displayData(request.responseText);/*ЗДЕСЬ*/
      } else {
          console.log("Server Error: " + request.status);
      }     
  }).bind(this));

или

  request.addEventListener('load', () => {
      if (request.status === 200) {
          this.displayData(request.responseText);/*ЗДЕСЬ*/
      } else {
          console.log("Server Error: " + request.status);
      }     
  });
  • в обоих, указанных Вами, случаях TypeError: displayData is not a function – Luca Jun 25 '17 at 15:16
  • @Luca это Вы неправильно код скопировали –  Jun 25 '17 at 15:21