0

Javascript-Objects に解析される複数のデータベース テーブルを持つ PhoneGap-Application を作成したいので、次のコードを書きました。

$(document).ready( function(){      
    var startpage = Object.create(Persons);
    startpage.load();
});

var Page = {
    db: window.openDatabase("database", "1.0", "My Database", 200000),
    load: function(){
        this.db.transaction(this.queryDB, this.errorCB);
    },
    errorCB: function(err){
        alert("Error processing SQL: " + err.message);
    }
}

var Persons = Object.create(Page, {        
    queryDB: {
        value: function(tx){
            tx.executeSql(
                'SELECT * FROM PERSONS', 
                [], 
                this.createObjects,  <-- Problem is here
                this.errorCB
            );
        }
    },
    createObjects: {
        value: function(tx, results){
            // [...] parse results to objects
        }    
    }
});

問題は、queryDB-method の「this」がオブジェクトではなくメソッド自体への参照であることです。正しい方法を参照する方法を知っている人はいますか?

ありがとうございました!

4

1 に答える 1

2

この質問で説明されているようなことをしたいと思うでしょう:

「var that = this;」とは JavaScriptでの意味?

したがって、Persons では、

var that = this;

次に、queryDB 関数で that.createObjects を参照します。

于 2011-11-28T02:37:40.063 に答える