对象没有方法' on' (节点中的EventEmitter)

时间:2014-08-26 17:53:21

标签: node.js

我的例子:

var Common= {

    http: require("http"),
    url : require("url"),
    fs : require("fs"),
    util : require("util"),
    event : require("events")
}

var someobj ={name:'sasha'}
Common.util.inherits(someobj,Common.event.EventEmitter)
someobj.on('onparse',function(data){
    console.log(data + this.name);
});

someobj.emit('onparse','super log from');

然后在控制台错误中: 对象没有方法

请帮帮我。

1 个答案:

答案 0 :(得分:4)

根据documentationinherits方法需要构造函数和超级构造函数的参数。您提供了一个对象和一个超级构造函数。

请注意,以下内容未经测试:

var Common= {
    http: require("http"),
    url : require("url"),
    fs : require("fs"),
    util : require("util"),
    event : require("events")
}

// Create a constructor function for the object
var SomeClass = function(name) {
    this.name = name;
    Common.event.EventEmitter.call(this);
}

// Inherit the EventEmitter prototype
Common.util.inherits(SomeClass, Common.event.EventEmitter);

// Create the new object
var someobj = new SomeClass('Sasha')
someobj.on('onparse', function(data){
    console.log(data + this.name);
});

someobj.emit('onparse', 'super log from');