我试图让一个 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 也将被其他人扩展,因此在运行 successFunction 时知道“this”将非常方便。
这似乎很简单,并且可能有一个简单的答案。我正在研究 .apply() 但我不确定它是否有帮助。这篇关于堆栈溢出的帖子有点帮助,但在我将它放入 .done() 函数的那一刻,它就坏了。