Я не силен в JS, но вроде function может передаваться как переменная первого порядка. я ее вызываю для проверки и запуска второй функции.
document.body.addEventListener( "mousedown", function (e) {
if ( e.target.getAttribute( "class" ) == "thing" ) {
elem = e.target; drag( e.target, e );
}
});
Вы про этот кусок кода?