extjs中组件监听器里面的回调函数说明

近期在看项目源代码的时候发现了例如以下代码,当中_searchSupplierStore是JsonStore对象

_searchSupplierStore.on('beforeload',function(thiz,options){
  thiz.baseParams["cusCode"]="%"+Ext.getCmp('id_cusCodetext').getValue()+"%";
   thiz.baseParams["cusType"]=Ext.getCmp('id_cusTypetext').getValue();
   thiz.baseParams["addr"]= "%"+Ext.getCmp('id_addrtext').getValue()+"%"
});

看到这里,当中的function(thiz,options)百思不得其解,thiz,和options是什么呢,各种search项目代码,发现仅仅有如此写法,没有相关说明。

经过查询以及与别人探讨,最后最终明确这玩意是什么东西了。

JsonStore的on函数里面有监听器函数handler,详细写handler的时候要依据store所触发的事件去实现。比方beforeload事件,store的beforeload事件传递两个參数。所以handler的实现里面也会有两个參数,而handler的实现函数里面的參数是形參,所以名字随便取,而且由于JavaScript是弱类型语言在声明变量时 不须要注明变量类型。所以形參会出现仅仅有乱七八糟的标志符的样子(比如function(thiz,options)),不像编译语言的函数參数还要声明类型。


on( String eventName, Function handler, [Object scope], [Object options] ) 


beforeload : ( Store this, Object options ) 
    this : Store
    options : Object
    The loading options that were specified (see load for details)这里面有个链接,发现就是store的config options


总结一下。或许总的原因还是自己没有从事件发生与处理机制去思考。去查找吧。一般都是事件回调函数绑定在某个对象上(即监听器里面的回调函数),该对象的详细事件发生事。会调用回回调函数,同一时候也回把事件发生事的一些“现场”(以參数形式)传递给回调函数。

在extjs中这个发生事件的现场要去对象的事件函数里面查询。这样才干在详细回调函数中写正确相应形參。

java awt中的事件机制是传递一个ActionEvent对象将现场传递。


总结是一种态度,更是一种进步

转载于:https://www.cnblogs.com/llguanli/p/6745243.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值