Javascript 对象和传递成员函数作为参数

标签 javascript function object arguments

这很难解释,也许我写一些示例代码会更好:

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/

相关文章:

javascript - 删除 Squarespace 中标签之间的逗号

function - 纬度/经度 + 距离 + 航向 --> 纬度/经度

javascript - 使用按钮控件执行 ESRI GP 服务

java - 如何在java中识别对象类型

database - Oracle:在对象关系数据库中使用外键

objective-c - iOS:在应用程序启动时初始化对象以供所有 Controller 使用

cshtml @Url.Action(Action, Controller) 的 JavaScript 类比

javascript - 从 for 循环填充对象列表的简写方法

javascript - 使用按钮在 chart.js 的图表之间切换

C++继承,从基类调用派生函数