Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查对象是否为EventEmitter的实例_Javascript_Node.js_Eventemitter - Fatal编程技术网

Javascript 检查对象是否为EventEmitter的实例

Javascript 检查对象是否为EventEmitter的实例,javascript,node.js,eventemitter,Javascript,Node.js,Eventemitter,我正在寻找一种方法,而不是duck类型,来发现对象是否继承自EventEmitter 我想我可以检查一下对象是否有一些事件发射器使用过的函数,这是脏的 使用Node.js有更好的方法吗?此外,如果有一种方法可以确定某个对象是否是事件发射器之上的流,那么这也会很有用。要检查某个对象是否是事件发射器的实例,可以从节点中将其与事件发射器进行比较。只需要“events”模块,它将公开eventemitter 我为您找到并修改了一个小片段: var http = require("http"); ht

我正在寻找一种方法,而不是duck类型,来发现对象是否继承自EventEmitter

我想我可以检查一下对象是否有一些事件发射器使用过的函数,这是脏的


使用Node.js有更好的方法吗?此外,如果有一种方法可以确定某个对象是否是事件发射器之上的流,那么这也会很有用。

要检查某个对象是否是事件发射器的实例,可以从节点中将其与事件发射器进行比较。只需要“events”模块,它将公开eventemitter

我为您找到并修改了一个小片段:

var http = require("http");

http.get("http://nodejs.org/", function (res) {
    // res is an EventEmitter that represents the HTTP response
    console.log(res instanceof require("events").EventEmitter); // true
    console.log(typeof res); // object
});

EventEmitter的object instanceof
?是的,但是如果他们只是使用mixin呢?那么似乎你真的只能检查特定方法的存在……我甚至不确定使用node.js核心事件发射器的mixin是否合适