如何在另一个模块中调用EventEmitter的继承函数?

林茨勒
//player.js

var inherits = require('util').inherits;
var EventEmitter = require('events').EventEmitter;

module.exports = Player;

function Player(uid, emailAddress, password) {
   this.uid = uid;
   this.emailAddress = emailAddress;
   this.password = password;

   EventEmitter.call(this);
}

inherits(Player, EventEmitter);

Player.prototype = {
   setUID: function(uid) {
     if(uid === 'number')
        this.uid = uid;
   },
   getUID: function() {
      return this.uid;
   },
   setEmailAddress: function(emailAddress) {
      this.emailAddress = emailAddress;
   },
   getEmailAddress: function() {
    return this.emailAddress;
   },
   setPassword: function(password) {
      this.password = password;
   },
   getPassword: function() {
    return this.password;
   }
}

// auth.js
var Player = require('./player');
var p = new Player(1000, '[email protected]', '12345');

// Here crashed
p.on('event', function() {
   console.log('Event emitted!');
});
p.emit('event');

我是 Node.JS 编程的新手。我正在尝试了解 Node 的 EventEmitter 模块。但是,当在on(event, callback)中调用EventEmitter 的函数时auth.js,它会抛出该错误

TypeError: p.on is not a function
    at Object.<anonymous> (/home/someone/App/libs/auth.js:7:3)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.runMain (module.js:605:10)
    at run (bootstrap_node.js:425:7)
    at startup (bootstrap_node.js:146:9)
    at bootstrap_node.js:540:3

我不知道为什么会这样。我该如何解决这个问题?

约翰内斯·梅尔茨

您在继承后覆盖原型并释放所有继承功能:

function Player(uid, emailAddress, password) {
   this.uid = uid;
   this.emailAddress = emailAddress;
   this.password = password;

   EventEmitter.call(this);
}

inherits(Player, EventEmitter); // your prototype now contains things like, on, once, emit, ...

Player.prototype = {}; // => you overwrite your prototype and loose all methods that were on there before

因此,不要覆盖,而是将您的方法添加到现有方法中:

Player.prototype.setUID =  function(uid) {
 if(uid === 'number')
    this.uid = uid;
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在JavaScript中的另一个函数中调用一个函数

来自分类Dev

如何从另一个模块调用函数

来自分类Dev

如何在VBA中的另一个函数内调用一个函数?

来自分类Dev

如何在另一个函数中调用一个函数

来自分类Dev

如何在另一个函数中调用一个reduce函数

来自分类Dev

如何在烧瓶中调用一个函数到另一个

来自分类Dev

如何在VB Excel中从另一个模块调用一个模块中的变量

来自分类Dev

如何在Javascript中创建一个继承另一个函数的属性和方法的函数?

来自分类Dev

Python-如何在另一个模块中调用一个模块的主要功能?

来自分类Dev

AngularJS从同一模块中的另一个函数调用模块中定义的函数

来自分类Dev

如何在类中调用函数以在php中调用另一个类?

来自分类Dev

如何在Kotlin中的另一个函数中调用带有参数的函数

来自分类Dev

如何在Javascript中测试另一个函数的函数调用计数?

来自分类Dev

如何在另一个函数中调用setinterval函数不起作用

来自分类Dev

如何在Javascript中测试另一个函数的函数调用计数?

来自分类Dev

如下所述,如何在JavaScript中的另一个函数内调用函数

来自分类Dev

我如何在另一个函数中调用函数?

来自分类Dev

如何在另一个函数中调用聚合函数?

来自分类Dev

我如何在反应中调用另一个函数已经使用的函数

来自分类Dev

如何在 JavaScript 中调用返回另一个函数的函数?

来自分类Dev

如何在一个类中从另一个调用一个函数(方法)?

来自分类Dev

如何在另一个函数中但在另一个Shell中调用一个函数

来自分类Dev

如何在Shell Script中的另一个函数中调用一个函数?

来自分类Dev

我的脚本如何在远程会话中的另一个脚本中调用函数?

来自分类Dev

如何在Scala中的另一个文件中调用函数?

来自分类Dev

我的脚本如何在远程会话中的另一个脚本中调用函数?

来自分类Dev

如何在angularjs中的另一个函数中调用

来自分类Dev

如何在 PHP 中调用另一个控制器文件中的函数?

来自分类Dev

如何在量角器的另一个函数中调用一个函数

Related 相关文章

  1. 1

    如何在JavaScript中的另一个函数中调用一个函数

  2. 2

    如何从另一个模块调用函数

  3. 3

    如何在VBA中的另一个函数内调用一个函数?

  4. 4

    如何在另一个函数中调用一个函数

  5. 5

    如何在另一个函数中调用一个reduce函数

  6. 6

    如何在烧瓶中调用一个函数到另一个

  7. 7

    如何在VB Excel中从另一个模块调用一个模块中的变量

  8. 8

    如何在Javascript中创建一个继承另一个函数的属性和方法的函数?

  9. 9

    Python-如何在另一个模块中调用一个模块的主要功能?

  10. 10

    AngularJS从同一模块中的另一个函数调用模块中定义的函数

  11. 11

    如何在类中调用函数以在php中调用另一个类?

  12. 12

    如何在Kotlin中的另一个函数中调用带有参数的函数

  13. 13

    如何在Javascript中测试另一个函数的函数调用计数?

  14. 14

    如何在另一个函数中调用setinterval函数不起作用

  15. 15

    如何在Javascript中测试另一个函数的函数调用计数?

  16. 16

    如下所述,如何在JavaScript中的另一个函数内调用函数

  17. 17

    我如何在另一个函数中调用函数?

  18. 18

    如何在另一个函数中调用聚合函数?

  19. 19

    我如何在反应中调用另一个函数已经使用的函数

  20. 20

    如何在 JavaScript 中调用返回另一个函数的函数?

  21. 21

    如何在一个类中从另一个调用一个函数(方法)?

  22. 22

    如何在另一个函数中但在另一个Shell中调用一个函数

  23. 23

    如何在Shell Script中的另一个函数中调用一个函数?

  24. 24

    我的脚本如何在远程会话中的另一个脚本中调用函数?

  25. 25

    如何在Scala中的另一个文件中调用函数?

  26. 26

    我的脚本如何在远程会话中的另一个脚本中调用函数?

  27. 27

    如何在angularjs中的另一个函数中调用

  28. 28

    如何在 PHP 中调用另一个控制器文件中的函数?

  29. 29

    如何在量角器的另一个函数中调用一个函数

热门标签

归档