Javascript - 从子回调更新​​父对象

时间:2014-06-17 09:20:18

标签: javascript callback parent-child

每次子对象运行回调函数时,我想设置父对象的属性。

我有以下代码:

function Track(id) {
    this.callback = function(args) {
        this.name = args;
    }

    this.child = new objectName(this.callback, property);
    this.name = this.child.name;
}

我希望每次调用this.name时都会更新this.callback ...有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

这是一个典型的范围问题,this在调用回调时不会引用父对象。

请改为尝试:

function Track(id) {
    var that = this;
    this.callback = function(args) {
        that.name = args;
    }

    this.child = new objectName(this.callback, property);
    this.name = this.child.name;
}

编辑:请参阅merlin的评论,以便解释为什么this可能导致问题。可能还有其他可能性来解决这个问题,即使用bind(),但为此你也必须将父项传递给objectName构造函数。