2011-12-04 27 views
0

JavaScriptのゲームを作ろうとしていて、WebSQLを使ってゲームデータを保存しています。私は、クエリ結果をフォーマットし、それを返す独自のデータベース選択関数を作成しました。Web SQLゲーム - 余分な引数を匿名関数に渡す

この特定のインスタンスでは、返されたオブジェクトを結果関数に渡します。私はまた2つの他の変数を渡したいと思いますが、私はこのエラー "Uncaught ReferenceError:planetInfoが定義されていません"を得続けます。誰かが助けることができればそれは非常に高く評価されるだろう。進んでいただきありがとうございます。

私も "selectRowPlanets( 'query'、outcomes(shipInfo、arrivalNumber));"を使用しようとしましたが、まだ運がありません。 outcomes(shipInfo, arrivalNumber)のがコールバックではなく、実際の関数として渡される

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); 
} 

答えて

1

selectRowPlanets('query', function() { outcomes(shipInfo, arrivalNumber) }); 

はあなたのコードを呼び出す匿名関数ラッパーを作ります