关于事件侦听和抛发

 
今天就至今进入主题吧!
一共两件事:第一是在降低耦合度中侦听和抛发中函数执行的顺序,第二就是为什么要先侦听再抛发
 
1、事件对象中函数的执行顺序:
在侦听的事件函数中如果想要先执行这句话就要将这句话写在抛发事件之前
 

 

 

 

  当写在抛发事件之后就会先执行抛发事件,谁接收了这个抛发事件(也就是说谁添加了这个事件侦听)就执行谁,在这里将事件evyt抛发出去,将flyy这个类型以参数形式被evt带出去了,这个时候在obj2.init中接受了这个事件,继续执行添加的侦听函数,所以会先执行"我先打印"这句话;继而回到obj2.init中继续执行自定义一个事件evt,将fly这个类型以参数形式,抛发出去,这个时候就回到了obj1.init中接受了这个事件,继续执行函数中最后一句语句,打印出“我后打印”

 

 

 
2、为什么要先添加事件侦听,再抛发?
在对象事件中,因为在这里的事件是自己定义的,属于私有,抛发的时候这个事件还没有创建出来,这个时候就涉及到执行先后顺序的问题了,因为调用的是对象方法,所以调用的时候要有先后顺序;在普通函数事件中;也是要先侦听再抛发,虽然函数都是存储在堆中,但是在存储函数中也是有顺序的,如果先传入一个自定义事件,但是该事件在这个时候还没有写入函数,也不会显示结果。
 
  1、事件函数:
 
  这个是没有结果的:
  

 

  这个是正确的打开方式:
  
 
  2、普通函数:
  这个是没有结果的

  

   

  这个才是正确打开方式:

  

 

转载于:https://www.cnblogs.com/LiuBaoy/p/11311745.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值