Вообще, встроенного механизма для такой задачи нет, т.к. все, что у нас есть, это postMessage, который умеет передавать только примитивы и Transferable объекты. Я вижу 2 варианта
1) Который вы предложили. Передавать хеш и потом при получении сообщения сравнивать. Только лучше делать не через замыкание (как у вас), а создать массив слушателей. Но это уже вылетает способ 2:
2) Сделать глобальную шину событий. Чтобы подписчики могли подписываться следующим образом
eventBase.on('worker.getLogin', function() { });
eventBase.on('worker.getEmail', function() { });
а в onmessage воркера просто запускать это событие
Worker.addEventListener('message', m => {
eventBase.emit(`worker.${m.eventName}`);
});