事件流: 首先经过事件捕获阶段,从上往下传,再经历冒泡阶段,从下往上传。

自定义事件: 首先通过CustomEvent()构造函数创建一个对象 let myEvent =new CustomEvent(typeArgs,eventInit); 其中typeArgs:DoOMString类型,表示事件的名称 eventInit:可选配置项,其中有 1、detail表示该事件中需要被传递的数据,在EventListener中获取 可选any类型 2、bubble表示该事件是否是冒泡 类型 Boolean 3、cancelable表示该事件能否被取消 类型 Boolean 实例: let myEvent = new CustomEvent("自定义事件名",{ detail:{name:"heng"}//放置需要传递的数据 })

2、//给页面的元素或者是Window对象添加监听事件 window.addEventListener("任意名字",(e)=>{ alert('事件发生,${e.detail.name}'触发) }) 给元素绑定分发事件 document.getElementById("选择器").addEventListener('click',function(){ window.dispatchEvent(myEvent) })

Event() 与CustomEvent()区别: 从传参数方面讲,Event()适合创建简单的自定义事件,而CoustomeEvent()支持传参的自定事件 并且在EventListener获取detail的数据信息。