javascript - 怎样封装事件

查看:150
本文介绍了javascript - 怎样封装事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

才接触node,知道EventEmitter可以用on方法添加事件,然后用emit触发事件。
现在我想自己写一个模块,可以对外提供添加事件的方法,然后模块执行过程中可以执行这些事件。

import MyFunc from './myfunc';
let my = new MyFunc();
my.on('start', function() {
    console.log('开始');
});
my.on('end', function() {
    console.log('结束');
})

我想达到的效果就类似上面这种,在模块外部可以给某些事件添加functions
模块内部应该用EventEmitter吗?怎么把on方法暴露出来?最好能给个例子,谢谢!

解决方案

继承EventEmiter
ES5

var EventEmitter = require("events").EventEmitter;

function MyClass() {
    EventEmitter.call(this);
}

MyClass.prototype = Object.create(EventEmitter.prototype);

MyClass.prototype.doSomething = function(data) {
    this.emit("doSomething", data);
}

ES6

var EventEmitter = require("events").EventEmitter;
class MyClass extends EventEmitter
{
    constructor(){
        super();
    }

    doSomething(data){
        this.emit("doSomething", data);
    }
}

这篇关于javascript - 怎样封装事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆