タイトルが示すように、渡された関数のパラメーターを取得できるかどうか疑問に思っています。同様の質問を何時間も検索して調べた後でも、私はまだ近くにいないので、私が取り組んでいるものではなく、簡単な例を添付します.
意図するグローバル機能
function getTransaction(anyMethod)
{
db.transaction
(
function(transaction)
{
anyMethod(transaction);
},
function errorCB(err) {
redirectToLoginWithError("Error processing SQL");
},
function successCB() {
;//alert("Success!");
}
);
}
呼び出される関数
function iWork(tx)
{
tx.doSomething();
}
function iDontWork(tx, param1, param2)
{
tx.doSomething(param1, param2);
}
実際の通話
// Works fine
getTransaction(iWork);
// The problem
getTransaction(iDontWork, value1, value2);
getTransaction(iDontWork2, value1, value2, ..., valueX);
私はいくつかの異なるアプローチを試みましたが、これまで成功したものはありません。最も近い(それほどではありませんが)
getTransaction(function(){iDontWork(value1, value2)}));
これは getTransaction を介して正しい関数を呼び出しますが、パラメーターを正しく渡しません。Params (value1, value2) は保持されますが、トランザクション オブジェクトは失われるか未定義です。なぜこれが起こるのかはわかりますが、解決策がわかりません。とはいえ、getTransaction を何らかの方法で破棄して書き直す必要があることにもオープンです。ポイントは、拡張性に優れた柔軟な方法を取得することです。