Ich habe es zwar mal versucht, wie du sagtest (ohne es richtig zu verstehen), aber das ging wie folgt leider auch nicht:
Du warst aber auf den richtigen weg.
<p onMouseOver="show(this)" onMouseOut="hide(this)">test</p>
extern:
function show (p) {p.this.innerHTML = 'test2';}
function hide (p) {p.this.innerHTML = 'test';}
this ist das Objekt und dann übergibst du dies als Parameter mit dem Namen p, d.h. in der Funktion ist p = this im HTML Tag, folglich brauchst du in der Funktion nur p.innerHTML
Struppi.