将成员函数作为回调传递给另一个类

时间:2016-03-09 19:05:24

标签: javascript node.js

我正在尝试将一个类的成员函数作为回调传递给另一个类。但是当其他类试图调用回调时,我收到以下错误:

  

TypeError:this.dataUpdateCallback不是函数

这是完整的代码:

// Class A
module.exports = function MyTestClass() {

    // Member variables
    this.service = null;

    // Starts the service
    this.start = function() {
        this.service = new MyCoolService(this.processNewData);
        this.service.start();
    }

    // Processes incoming data
    this.processNewData = function(data) {
        console.log(data);
    }
}

// Class B
module.exports = function MyCoolService(aDataUpdateCallback) {

    // Member variables
    this.dataUpdateCallback = aDataUpdateCallback;

    // Starts the service
    this.start = function() {
        // Do stuff, then call...
        this.dataUpdateCallback("Hello World!"); // => TypeError: this.dataUpdateCallback is not a function
    }
}

PS:我不认为上面提到的副本有帮助。问题似乎有点不同...... 据我所知,我必须在B类的某处保存A类的这个,这样当调用A类时我可以使用正确的A类。但是B级永远不会看到这个,所以我无法存储。

0 个答案:

没有答案