spacenear
@spacenear
React Web Developer

Как получить доступ через this к другим методам?

Вот есть у меня такой код
1)DialogSheet - функция конструктор объявленная ранее. И я через прототип записал ей метод.
2) еще в прототип этой функции я записал другие методы. К примеру метод preloaderHide
Проблема в том, что preloaderHide находится внутри другой функции. И поэтому this больше не ссылается на функцию конструктор и я получаю ошибку.
Как можно решишь эту проблему? у меня пришло на ум только объявить в начале метода какую то переменную и присвоить ей this а потом через нее ссылаться - но может есть какое то более правильное решение?
DialogSheet.prototype.load = function() {
  this.preloaderShow();
  $.post("date.php", {
    dialog_sheet: true
  }, function(data) {
    this.preloaderHide(function() {
      if (data) {
        try {
          var result = JSON.parse(data);
          for (var i = 0; i < result.length; i++) {
            var id = result[i]['id'];
            var name = result[i]['name'];
            var img = result[i]['avatar'];
            var allMsg = result[i]['all_messages'];
            var newMsg = result[i]['new_messages'];
            var status = result[i]['online'];
            var dialog = new Dialog(id, name, img, allMsg, newMsg, status);
            dialog.render();
          }
        } catch (err) {
          console.error('ошибка данных');
          console.log(err);
        }
      } else {
        this.emptyTitleRender();
      }
    });
  });
};
  • Вопрос задан
  • 117 просмотров
Решения вопроса 1
@RidgeA
1. Вариант с переменной
2. bind
3. arrow function
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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