[英]Web SQL game - passing extra arguments to an anonymous function
我正在嘗試制作一個JavaScript游戲,並且正在使用WebSQL來存儲游戲數據。 我創建了自己的數據庫選擇函數,該函數將查詢結果格式化,然后將其返回。
在此特定實例中,我將返回的對象傳遞給結果函數。 我也想傳入其他兩個變量,但我不斷收到此錯誤“未捕獲的ReferenceError:未定義planetInfo”。 如果有人可以幫助,將不勝感激。 在此先感謝您。
我也嘗試過使用“ selectRowPlanets('query',outcomes(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);
}
運行此代碼時:
selectRowPlanets('query', outcomes(shipInfo, arrivalNumber));
outcomes(shipInfo, arrivalNumber)
的輸出 outcomes(shipInfo, arrivalNumber)
作為回調傳遞,而不是實際函數傳遞。
創建一個匿名函數包裝程序來調用您的代碼:
selectRowPlanets('query', function() { outcomes(shipInfo, arrivalNumber) });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.