这很难解释,也许我写一些示例代码会更好:
function A()
{
this.b = new B();
this.a_value = 456;
this.f = function(i)
{
for(var i = 0; i < this.a_value; ++i)
DoStuff(i);
}
this.b.C(this.f)
}
我试图将一个函数作为参数传递给 B,但是当 C 试图达到 a_value 时,它是未定义的。我该如何解决?
我希望我没有过度简化我的问题。
最佳答案
现在(或者显然是从 2015 年开始),您还可以将函数绑定(bind)到对象实例,如图所示 in this answer :
this.b.C(this.f.bind(this));
作为解释:
var fn = myObject.myFunction.bind(myObject);
// The following two function calls are now equivalent
fn(123);
myObject.myFunction(123);
关于Javascript 对象和传递成员函数作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9304609/