SOURCE

console 命令行工具 X clear

                    
>
console
const btn1 = document.getElementById('btn1');
bindEvent(btn1, 'click', function(event) {
    event.preventDefault();
    console.log(this.innerHTML);
});

const div3 = document.getElementById('div3');
bindEvent(div3, 'click', 'a', function(event) {
    event.preventDefault();
    console.log(this.innerHTML);
});

function bindEvent(elem, type, selector, fn) {
    if(fn == null) {
        fn = selector;
        selector = null;
    }

    elem.addEventListener(type, function(event) {
        console.log("event", event);
        let target = event.target;
        if(selector) {
            if(target.matches(selector)) {
                fn.call(target, event);
            }
        } else {
            fn.call(target, event);
        }
         
    });
}
<button id="btn1">Regular Event Listener</button>
<div id="div3">
    <a href="#">a1 </a> 
    <br>
    <a href="#">a2 </a> 
    <br>
    <a href="#">a3 </a> 
    <br>
    <a href="#">a4 </a> 
    <br>
    <button>Add more</button>
</div>