JSFiddle - React, Tailwind, and code Playground

by t2t2

HTML

<span id="dummy">Dummy el</span>

JavaScript

var orig = Node.prototype.addEventListener;
function wrappedAEL() {
  console.log('wrapper');
  return orig.apply(this, arguments);
}

Node.prototype.addEventListener = wrappedAEL

// Open console to see values

// HTMLSpanElement -> HTMLElement -> Element -> Node (-> EventTarget) -> Object
console.log('span', document.getElementById('dummy').addEventListener);
// Document -> Node (-> EventTarget) -> Object
console.log('document', document.addEventListener);
// Window (-> EventTarget) -> Object
console.log('window', window.addEventListener);

// To confirm wrapper is called
console.log('call on element')
document.getElementById('dummy').addEventListener('click', function() {});

// To confirm wrapper is called
console.log('call on document')
document.addEventListener('click', function() {});

// To confirm wrapper is called
console.log('call on window')
window.addEventListener('click', function() {});