技术文章

javascript中自定义事件的意义是什么?

在JavaScript中,自定义事件确实是很少用到,事件在本质上是一种消息,是对设计模式中,观察者模式的一种实现,接下来,我就用一个实例来说明下这个问题。

创建两个模块A与B,分别为ModuelA.js和ModuelB.js,在A模块中执行操作,B模块中监听A模块中的操作。自定义事件主要有以下两种使用场景;

一、模块协作,用于解耦

在以前,JS并没有模块化开发的说法,不用多个开发人员协作;现在就不一样了,在一些大型项目中,可能会存在很多JS代码,那么,为了代码规范、可维护性。我们就有必要按功能进行模块化开发。这个时候,自定义事件就可以派上用场了,为了降低模块间的耦合行,模块之间尽量减少相互调用的情况;某一模块执行了什么操作,可以用自定义事件的方式,通知另一模块。

javascript
javascript

 

控制台显示结果:

javascript

二、传递消息

模块执行某一操作后,通知另一模块的时候,可以传递一些消息过去。

javascript
javascript

 

控制台显示结果:

javascript

在A模块中执行了数组的合并操作,合并成功后,触发concat事件,并把这个合并的消息传递过去;在B模块中,没有调用A模块中任何的变量及对象,但是B模块却可以知道,A模块中的数组合并操作,并且还能够获取到A模块传递过来的消息,这就是自定义事件的好处!