事件机制为我们的web开发提供了极大的方便,使得我们能在任意时候指定在什么操作时做什么操作、执行什么样的代码。
如点击事件,用户点击时触发;keydown、keyup事件,键盘按下、键盘弹起时触发;还有上传控件中,文件加入前事件,上传完成后事件。
由于在恰当的时机会有相应的事件触发,我们能为这些事件指定相应的处理函数,就能在原本的流程中插入各种各样的个性化操作和处理,使得整个流程变得更加丰富。
也想在自己的开发的控件中加入类似的事件机制该如何实现呢? 就让我们来一探究竟。
Javascript自定义事件,其本质就是观察者模式(又称订阅/发布模式),好处在于将绑定的事件和触发事件相互隔离,并且可以动态的添加、删除事件
JS如何实现自定义事件?自定义事件处理函数功能处理的独特之处有哪些?如何能够有效的创建合适
事件必须要提供以下几种功能: 绑定事件、触发事件、取消绑定事件
事件具有的特征: 事件必定是属于某个对象的(也就是说事件不是独立存在的,它需要一个载体。简单的实现方案=》将事件作为一个基类,在需要事件的地方继承这个事件类即可。)
为什么要把方法添加到对象原型上?
在构造函数中添加属性,在原型中添加方法?为什么?有什么优点?能够起到什么作用
- 将属性和方法都写在构造函数里是没有问题的,但是每次进行实例化的过程中,要重复创建功能不变的方法。
- 由于方法本质上是函数,其实也就是在堆内存中有新建了一个对象空间存放存储函数,造成了不必要的资源浪费。
- 在本身添加会导致每次对象实例化时,代码被复制,都需要申请一块内存进行该方法的存放。
自定义事件实现初衷应当且必须满足以下需求:
- 为了实现特定的需求而定义的事件
- 自身的方法可按需索取(可动态删除与添加方法,可独立和组合调用方法)
- 满足程序开发过程中的一些条件或准则(内存最优化,方法独立性与关联性,复用性,性能问题,设计模式,避免变量污染,等等)