こんにちは、私は正常に動作するこのコードを持っています
var app = {
callback: null,
jqmReady: null,
pgReady: null,
// Application Constructor
initialize: function(callback) {
this.callback = callback;
this.jqmReady = $.Deferred();
this.pgReady = $.Deferred();
this.bindEvents();
},
bindEvents: function() {
document.addEventListener('deviceready', app.pgReady.resolve, false);
$(document).on("pageinit", app.jqmReady.resolve);
$.when(app.jqmReady, app.pgReady).then(app.isReady);
},
isReady: function() {
app.callback();
}
};
コードは次のように初期化されています。
app.initialize(function(){
navigator.notification.alert('Hello there!', function(){}, 'Notify', 'Ok');
});
ただし、私の isReady 関数は最初はこのようで、コールバックは呼び出されませんでした:
isReady: function() {
this.callback();
}
なぜこうなった ?関数のようにthis = app
内部のスコープではありませんか?なぜそれがうまくいかないのか、誰かが私に説明してもらえますか?isReady()
initialize()
this.callback()