0

こんにちは、私は正常に動作するこのコードを持っています

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()

4

1 に答える 1