簡體   English   中英

Web SQL游戲-將額外的參數傳遞給匿名函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM