1

私はバインドをいじっていますが、次のように動作します:

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 を参照できます。

4

1 に答える 1

2

localそもそも変数に割り当てられたオブジェクトを使用していた理由がわかりません。

あなたがしていたのは、それに関数を与えてから、その関数をすぐに取り出すことだけでした。そのステップを飛ばしてみませんか?

webSQL.InsertTransaction = function(qry,CurrentRow) {
    dbo.transaction(webSQL.Insert.bind(this,qry,CurrentRow));
}
于 2013-03-31T00:37:04.253 に答える