Вот есть у меня такой код
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();
}
});
});
};