рони,
У тебя тут не связан контекст самого элемента.
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<p id="p1" foo="bar">foo</p>
<p id="p2" foo="bar">foo</p>
<script>
var context1=function(){this.a=1}
var context2={a: 10}
var fn = function(e){try{alert(this.getAttribute("foo"))}catch(e){alert(e)}}
p1.onclick = fn.bind(new context1);
p2.onclick = fn.bind(context2);
</script>
</body>
</html>
тут вообще говоря, существует тьма чрезжопных решений, можно пропихивать кусками через замыкания, через call/apply/bind, только все это не нужно.