使用bind在“this”范围内保存函数的参数

时间:2013-03-31 00:27:28

标签: javascript bind

我正在使用bind,以下是有效的:

webSQL.InsertTransaction = function(qry,CurrentRow) {
    var local = {};
    // Clone the webSQL.Insert function and add 2 parameters:
    local.InsertTransaction = webSQL.Insert.bind(this,qry,CurrentRow);
    // Call webSQL.Insert(qry,CurrentRow,Transaction)
    dbo.transaction(local.InsertTransaction);
}
webSQL.Insert = function(qry,CurrentRow,Transaction) {}

我想进一步简化它。我可以以某种方式不必指定参数范围内的2个变量,而是执行类似的操作:

local.InsertTransaction = webSQL.Insert.bind(webSQL.InsertTransaction)

也许。我的想法是,然后webSQL.Insert可以从它的“this.arguments”中引用qry和CurrentRow。

1 个答案:

答案 0 :(得分:2)

我不确定您为什么首先使用分配给local变量的对象。

你所做的只是给它一个功能,然后把这个功能拿回来。为什么不跳过那一步?

webSQL.InsertTransaction = function(qry,CurrentRow) {
    dbo.transaction(webSQL.Insert.bind(this,qry,CurrentRow));
}