Я пытаюсь, чтобы объект javascript запускал отложенный метод, и когда он .done() вызывает функцию в том же самом объекте. У меня проблемы, потому что "this" становится отложенным объектом вместо объекта, который его вызвал.
PageObject.prototype.successFunction = function() {
console.log(arguments);
return console.log(this.name + " Success function called");
};
PageObject.prototype.loadPage = function(url) {
return $.when($.mobile.loadPage("pages/" + url))
.done(this.successFunction);
};
var pg = new PageObject();
pg.loadPage("test.html");
Как отправить "this" в функцию successFunction? Этот объект PageObject также будет расширен другими, поэтому знание "this" при запуске successFunction будет очень удобным.
Кажется простым и, вероятно, имеет простой ответ. Я смотрел в .apply(), но я не уверен, что это помогло. Этот пост при переполнении стека был полезен немного, но он сломался, как только я положил его в функцию .done().