主文件
var DogModule = require('Dog');
var dogsList = [];
function addNewDog(){
var newDog = new Dog();
dogsList.push(newDog);
}
???.on('bark', function(barkSound) {
console.log(barkSound);
});
狗文件
var EventEmitter = require('events').EventEmitter;
function Dog() {
EventEmitter.call(this);
this.name = "asda";
this.chipId = 1234;
this.emit('bark', "au-au");
}
Dog.prototype = {
getName: function () {
return this.name;
},
getChipId: function () {
return this.chipId;
}
}
问题1 - 如何正确地将EventEmitter.prototype添加到Dog对象并保存当前原型,基本上只是访问EventEmitter方法?
这里的问题是如何不覆盖现有方法......
问题2 - 处理一个对象没有问题,但多个如何处理它们的个性,知道它们将存储在该列表中?
谢谢。
答案 0 :(得分:1)
为防止重写原型,您可以使用Object.assign
:
util.inherits(Dog, EventEmitter);
Dog.prototype = Object.assign({
getName: function () {
return this.name;
},
getChipId: function () {
return this.chipId;
}
}, Dog.prototype);