《ExtJS 3详解与实践》阅读补充资料:capture()捕获事件

本文介绍了ExtJS中使用capture()方法捕获和跟踪事件的技巧。通过具体示例展示了如何观察组件事件调用过程,以及如何利用AOP概念进行事件拦截。

静态方法Ext.util.Observable.capture()是一项有趣的功能,它能够将一项事件进行捕获,跟踪该事件发生的经过。捕获事件就是观察Ext JS事件的调用过程。只要是继承了 Ext.util.Observable的组件,调用capture(),便可得知该组件何时何地怎样响应事件,也算是调试组件时的技巧。

 

在Firebug中运行例程如上图,运行就会有跟踪事件的效果。function(e) {console.info(e);}的作用是控制台输出事件信息(须安装有Firebug)。进入其源码,您会发现实现该功能非常简单,capture函数内只有单独一行o.fireEvent=o.fireEvent. createInterceptor(fn, scope);就是整个capture()的过程。它表示执行原事件函数后,紧接着执行fn函数,近乎于AOP(Aspect Oriented Programming)的概念。AOP 是一种编程技术,更是一种编程思想。Ext框架支持利用回调函数的概念实现了某一时刻的前、后置两个横切点的操作,Ext对Function.prototoype的原型扩展就方便了开发人员在每个切入点上自行编写扩展机制的代码,加入进行多个切入动作。若要取消捕获事件,可以执行相反的方法Ext.util.Observable. releaseCapture()将捕获的事件释放。

另外还有一个彻底的方法捕获事件,那便是用Function.createInterceptor定义新函数,然后修改Observable 类的原型。

此处披露的内容是《ExtJS 3详解与实践》 的补充内容,完整的资料敬请参阅《ExtJS 3 详解与实践》 一书的全面介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sp42a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值