2

このJavaScriptコードを想定しましょう

function a (b,c,d) {log(this); return b+c+d;}

a(1,2,3); // logs [Object Window], returns 6
bound = a.bind("hello", 5,6);
bound(7); // logs "hello", returns 18

関数bound(コールバックなど) が与えられた場合、バインドされたコンテキスト ("hello", 5, 6 など) を取得する方法はありますか?

4

1 に答える 1

0

関数からバインドされたコンテキストを直接読み取る方法はわかりませんが、それを (別の関数の実行スコープとして)使用できます。

/**
 * @param {function} toBeCalled
 * @param {function} preBound
 * @param {array} args
 */
function callOnBoundScope(toBeCalled, preBound, args) {
    toBeCalled.apply(preBound, args);
}

関数preBoundは、それ自体が呼び出されることなく、そのスコープを提供するだけです。

于 2015-10-20T12:13:38.867 に答える