很多dom对象都有原生的事件支持,向div就有click、mouseover等事件,事件机制可以为类的设计带来很大的灵活性,相信.net程序员深有体会。随着web技术发展,使用javascript自定义对象愈发频繁,让自己创建的对象也有事件机制,通过事件对外通信,能够极大提高开发效率。
简单的事件需求
事件并不是可有可无,在某些需求下是必需的。以一个很简单的需求为例,在web开发中dialog很常见,每个dialog都有一个关闭按钮,按钮对应dialog的关闭方法,代码看起来大概是这样
复制代码 代码如下:
test
dialog
最后
这样解决了几个弊端看起来就完美多了,其实可以把打开dialog显示page cover也写成类似关闭时事件的方式了。当代码中存在多个部分在特定时刻相互交互的情况下,自定义事件就非常有用了。如果每个对象都有其它对象的引用,那么整个代码高度耦合,对象改动会影响其它对象,维护起来困难重重。自定义事件使对象解耦,功能隔绝,这样对象之间实现了高聚合。