Estoy tratando de enviar (esto) como parámetro al detector de eventos que creará dinámicamente el conjunto de datos contenido en la función.
mi document.listener tiene otro elemento, no solo este.
document.addEventListener('click', function(event) { let el = event.target; if (el.hasAttribute('data-todo') ) { let FN = new Function( el.dataset.todo ); FN(); } }); function toggleDisable(el) { console.log( el.tagName ); el.classList.add('disabled'); } <div class="wrapper"> <button type="button" data-todo="toggleDisable(this)">Diable me</button> </div>Dado que lo está evaluando dentro del detector de eventos de click , use event.target para hacer referencia al elemento en sí:
document.addEventListener('click', function(event) { let el = event.target; if (el.hasAttribute('data-todo') ) { let FN = new Function( el.dataset.todo ); FN.this = event.target; FN(); } }); function toggleDisable(el) { console.log( el.tagName ); el.classList.add('disabled'); } <div class="wrapper"> <button type="button" data-todo="toggleDisable(event.target)">Diable me</button> </div>