2011-12-04 46 views
0

我正在尝试制作一个JavaScript游戏,并使用WebSQL存储游戏数据。我已经创建了我自己的数据库选择函数来格式化查询结果,然后返回它们。Web SQL游戏 - 将额外参数传递给匿名函数

在这个特定的实例中,我将返回的对象传递给结果函数。我想也传递两个其他变量,但我不断收到这个错误“Uncaught ReferenceError:planetInfo没有定义”。如果任何人可以帮助它会非常感激。先进的谢谢你。我也尝试使用“selectRowPlanets('query',outcome(shipInfo,arrivalNumber));”,但仍然没有运气。

/** db.js **/ 
function selectRowPlanets(query, callBack){ // <-- extra param 
    var result = []; 
    db.transaction(function (tx) { 
    tx.executeSql(query, [], function(tx, rs){ 
     for(var i=0; i<rs.rows.length; i++) { 
     var row = rs.rows.item(i); 
      result[i] = { id:   row['id'], 
         name:  row['name'], 
         owner:  row['owner'], 
         colum:  row['colum'], 
         row:   row['row'], 
         ships:  row['ships'], 
         production: row['production'], 
         percent:  row['percent'] 
     } 
     } 
     callBack(result); // <-- new bit here 
    }, errorHandler); 
    }); 
} 


/** function.js **/ 
function selectDestination(shipInfo, arrivalNumber) { 
    selectRowPlanets('SELECT * FROM planets', outcomes(planetInfo, shipInfo, arrivalNumber)); 
} 

function outcomes(planetInfo, shipInfo, arrivalNumber){ 
     console.log(arguments); 
} 

回答

1

当你运行该代码:

selectRowPlanets('query', outcomes(shipInfo, arrivalNumber)); 

输出outcomes(shipInfo, arrivalNumber)的回调,而不是实际的函数传递。

做一个匿名函数封装调用代码:

selectRowPlanets('query', function() { outcomes(shipInfo, arrivalNumber) }); 
相关问题