А что мешает использовать addEventListener и attachEvent, чтобы не создавать каждый раз новую копию show/hide?
Да и функцию, как объект, можно использовать по ссылке:
<html>
<head>
<script type="text/javascript">
window.onload = function() {
function F() {}
var a = document.getElementById("test1");
var b = document.getElementById("test2");
a.onclick = F;
a.onclick.key = true;
b.onclick = F;
alert(b.onclick.key);
alert(F.key); // Функция используется по ссылке (не копируется), поэтому везде доступно её свойство key.
};
</script>
</head>
<body>
<div id="test1">text1</div>
<div id="test2">text2</div>
</body>
</html>