Node.js - 在类中调用函数两次时奇怪的TypeError

时间:2014-10-07 21:00:20

标签: javascript node.js class asynchronous typeerror

考虑一个类的这个(简化的)摘录:

function PluginsEngine() {
    this.allPluggins = require('./plugins');
};

PluginsEngine.prototype.applyPlugins = function(incomingData, done){

    // bind the incoming data to each plugin
    var key;
    for (key in this.allPluggins)
        this.allPluggins[key] = this.allPluggins[key].bind(undefined, incomingData);

    async.parallel(this.allPluggins, done);
};

构造函数加载一组匿名函数和" applyPlugins"然后方法传递" incomingData" (字符串)到每个,这些是使用async执行的。

在针对此编写测试时,我看到了一个奇怪的行为,即调用" applyPlugins"运行正常,但之后立即再次调用会导致错误:

TypeError: string is not a function

添加一些额外的调试,我可以看到第二次运行时allPluggins为空(功能不可用)。

有人可以告诉变量为什么会失去这些功能吗?

0 个答案:

没有答案