手写一个通用的dom事件代理与绑定函数

// 通用的事件绑定函数
function bindEvent(elem, type, selector, fn) {
  //判断传入参数,传入三个参数为事件绑定,四个为事件代理
    if (fn == null) {
        fn = selector
        selector = null
    }
    elem.addEventListener(type, event => {
        const target = event.target
        if (selector) {
            // 代理绑定
            if (target.matches(selector)) {
                fn.call(target, event)
            }
        } else {
            // 普通绑定
            fn.call(target, event)
        }
    })
}

你可能感兴趣的:(手写一个通用的dom事件代理与绑定函数)