2017-03-17 91 views
-1
var events = require('events'); 
var util = require('util'); 

var person = function (name) { 
    this.name = name; 
}; 

util.inherits(person, events.EventEmitter); 

var james = new person('james'); 
var people = ['james']; 

people.forEach(function (person) { 
    person.on('speak', function (msg) { 
     console.log(person.name + 'said:' + msg); 
    }); 
}); 

james.emit('speak', 'hey hello'); 

我得到一个错误的NodeJS/JavaScript的:类型错误:person.on不是一个函数

person.on('speak', function (msg) {

 ^TypeError: person.on is not a function 

事件& util的内置模块

+1

用'var people = [james];'替换。你不想在这一点上使用一个字符串。 – Sirko

回答

0

更改此:

var people = ['james']; 

对此:

var people = [james]; 

当你把数组中的字符串,这就是你要去当你遍历数组.forEach()和字符串'james'没有.on()方法使你得到你所看到的错误得到什么。

取而代之的是,在数组中放入对实际对象的引用。

相关问题