【无标题】

4.26.什么是事件捕获(Event Capturing)

事件开始由较为不具体的节点接收后,然后开始逐级向下传播到最具体的元素上。

事件捕获的最⼤作⽤在于:事件在到达预定⽬标之前就可以捕获到它。 如果仍以上⾯那段 HTML 代码为例,当点击按钮后,在事件捕获的过程中,document 对象会⾸先接收 到这个 click 事件,然后再沿着 DOM 树依次向下,直到。

具体顺序如下: 1. document 对象 2. html 元素 3. body 元素 4. button 元素

4.27.什么是事件委托

事件委托,就是利⽤了事件冒泡的机制,在较上层位置的元素上添加⼀个事件监听函数,来管理该元素 及其所有⼦孙元素上的某⼀类的所有事件。

原理是:事件冒泡! 适⽤场景:在绑定⼤量事件的时候,可以选择事件委托 优点 事件委托可以减少事件注册数量,节省内存占⽤! 当新增⼦元素时,⽆需再次做事件绑定,因此⾮常适合动态添加元素 (vue解析模板时, 会对新创建 的元素, 额外进⾏绑定的)

4.28. 怎么阻⽌事件冒泡、阻⽌默认事件?

阻⽌事件冒泡 e.stopPropagation() 阻⽌默认事件,3种⽅式

4.29.什么是闭包以及作⽤

闭包就是指有权访问另⼀个函数作⽤域中的变量的函数。

闭包有两个常⽤的⽤途; 闭包的第⼀个⽤途是使我们在函数外部能够访问到函数内部的变量。通过使⽤闭包,可以通过在外 部调⽤闭包函数,从⽽在外部访问到函数内部的变量,可以使⽤这种⽅法来创建私有变量。 闭包的另⼀个⽤途是使已经运⾏结束的函数上下⽂中的变量对象继续留在内存中,因为闭包函数保 留了这个变量对象的引⽤,所以这个变量对象不会被回收。

4.30.闭包带来的问题以及使⽤场景 在实际的项⽬中,会基于闭包把⾃⼰编写的模块内容包裹起来,这样编写就可以保护⾃⼰的代码是私有 的,防⽌和全局变量或者是其他的代码冲突,这⼀点是利⽤保护机制。 但是不建议过多的使⽤闭包,因为使⽤不被释放的上下⽂,是占⽤栈内存空间的,过多的使⽤会导致导 致内存泄漏。 解决闭包带来的内存泄漏问题的⽅法是:使⽤完闭包函数后⼿动释放。

使⽤场景

1. return 回⼀个函数

2. 函数作为参数

3. IIFE(⾃执⾏函数)

4. 循环赋值

5. 使⽤回调函数就是在使⽤闭包

6. 节流防抖

7. 函数柯⾥化

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值