正如标题所说,我想知道是否可以获取传递函数的参数。经过数小时的搜索和查看类似问题后,我仍然没有接近,所以我将附上一个简单的例子,而不是我正在研究的内容 - 因为我开始怀疑这是不可能的。
预期的全局功能
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 应该被废弃并以某种方式重新编写。关键是要获得一种可以很好扩展的灵活方法。