Javascript PhoneGap应用程序的正确回调和引用

Javascript PhoneGap应用程序的正确回调和引用,javascript,oop,callback,cordova,ecmascript-5,Javascript,Oop,Callback,Cordova,Ecmascript 5,我想创建一个PhoneGap应用程序,其中包含多个数据库表,这些表将被解析为Javascript对象,因此我编写了以下代码 $(document).ready( function(){ var startpage = Object.create(Persons); startpage.load(); }); var Page = { db: window.openDatabase("database", "1.0", "My Database", 20000

我想创建一个PhoneGap应用程序,其中包含多个数据库表,这些表将被解析为Javascript对象,因此我编写了以下代码

$(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
        }    
    }
});
$(文档).ready(函数(){
var startpage=Object.create(个人);
startpage.load();
});
变量页={
db:window.openDatabase(“数据库”,“1.0”,“我的数据库”,200000),
加载:函数(){
this.db.transaction(this.queryDB,this.errorCB);
},
errorCB:函数(err){
警报(“处理SQL时出错:+err.message”);
}
}
var Persons=Object.create(第页,{
queryDB:{
值:功能(tx){
tx.executeSql(
“从人员中选择*”,
[], 

this.createObjects,您需要执行与本问题中讨论的类似的操作:

因此,在个人中,你会想做一个

var that = this;
然后在queryDB函数中引用that.createObjects