8.14 腾讯前端面试 事件模型

1.DOM 事件处理程序

1.HTML事件处理程序
指直接将事件写在HTML的DOM结构中
2.DOM 0 事件处理程序
指对JS中的dom对象的事件参数属性赋值
3.DOM 2 事件处理程序
使用addEventListener(或者IE中的attachEvent)指定DOM对象的指定事件,用removeEventListener删除事件,可以方便地对一个对象绑定多个事件

2.事件代理

原理:事件的冒泡/捕获机制,在event中记录了target,代表事件的事件源。
优点:
1.减少DOM事件绑定的内存消耗和事件注册的次数;
2.不用在子节点销毁时回收绑定在子节点上的事件
缺点:
1.事件委托基于冒泡,对于不冒泡的事件不支持。
2.层级过多,冒泡过程中,可能会被某层阻止掉。
3.理论上委托会导致浏览器频繁调用处理函数,虽然很可能不需要处理。因此建议就近委托,比如在table上代理td,而不是在document上代理td。
4.把所有事件都用代理就可能会出现事件误判。比如,在document中代理了所有button的click事件,另外的人在引用改js时,可能不知道,造成单击button触发了两个click事件。

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 14:11
很喜欢小米的新车,校招薪资每月22k,攒多久能买?
测试糕手手:别看工资,先看现金流存款。有50W存款以上再考虑,车是消耗品,选适合自己的重要。你有钱就当我没说过
点赞 评论 收藏
分享
05-21 15:47
门头沟学院 Java
浪漫主义的虹夏:项目有亮点吗,第一个不是纯玩具项目吗,项目亮点里类似ThreadLocal,Redis储存说难听点是花几十分钟绝大部分人都能学会,第二个轮子项目也没体现出设计和技术,想实习先沉淀,好高骛远的自嗨只会害了自己
点赞 评论 收藏
分享
评论
1
5
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务