我们假设这个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?
答案 0 :(得分:0)
虽然我没有看到直接从函数中读取绑定上下文的方法,但您可以使用它(作为另一个函数的执行范围)。
/**
* @param {function} toBeCalled
* @param {function} preBound
* @param {array} args
*/
function callOnBoundScope(toBeCalled, preBound, args) {
toBeCalled.apply(preBound, args);
}
函数preBound
只提供其范围,而不是自己调用。