js中事件监听,回调函数,事件捕获和事件冒泡以及事件委托的理解

js,dom中事件监听+回调函数的理解

用现实中的人来做比喻,可以这么理解:

  1. 爸妈让我在家里看门,有人敲门就上去开门;

  2. 那么在这个例子中:爸妈就是程序员,我就是监听器,有人敲门就是事件,开门就是回调函数;

  3. 用编程的方式去解读就是:程序员针对某个事件设置了一个监听器,当事件被触发了就执行回调函数;

  4. 反过来就可以继续联想,事件是被触发的,在这里代指敲门的人,于是在编程世界中就有了事件的触发者,等等…

事件捕获和事件冒泡的理解

  1. 举个例子,我家今天着火了。

  2. 那么从我的角度看,就是在我家里发生了这件事,往外扩散,从小区保安的角度看,我们小区里发生了这件事,从省领导的角度来看,是湖北省中的某个地方发生了这件事,从新闻联播的角度看,是中国的某处地方发生了这件事。这就是事件冒泡。

  3. 反过来,新闻联播想知道我家发生了什么事,那么得从中国找到湖北省,再找到我的小区,再找到我家。这就是事件捕获。

  4. 以编程的方式解读就是:我作为监听器,那就是我家门口发生了敲门事件,小区保安作为监听器,那就是这个小区发生了敲门事件,依次往外推。那么我家发生敲门事件就会”冒泡“扩散出去;

  5. 反之事件捕获就像是找某个嫌疑犯一样,一步步缩小范围,最后捉拿归案

事件委托的理解

  1. 委托委托,将一件事委屈别人托付给别人,即为委托

  2. 那么在js中如何理解呢?

  3. 换个例子,每个家庭都有孩子,每个孩子都需要有人照看,在家里需要父母看着,但是在学校,只需要一个老师看着。

  4. 在js中也是这样:由于所有子元素的事件都会冒泡到同一个父级,那么我只需要给父级添加一个事件监听,即可让所有子级元素被监听到,而不需要给每个子元素都添加一个监听。

  5. 这样做会失去一些独立性,但是可以简化操作,适合使用在大量重复操作的地方。

编程世界中的知识几乎都可以在现实生活中找到原型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值