Самый простой способ привязать вызов к handle_click
к объекту, в котором он определен, будет выглядеть примерно так:
var self=this;
document.getElementById('x').onclick =
function(e) { return self.handle_click(e) };
Если вам нужно передать параметры или сделать код более чистым (например, если вы настраиваете много похожих обработчиков событий), вы можете использовать технику каррирования для достижения того же:
bind : function(fn)
{
var self = this;
// copy arguments into local array
var args = Array.prototype.slice.call(arguments, 0);
// returned function replaces first argument with event arg,
// calls fn with composite arguments
return function(e) { args[0] = e; return fn.apply(self, args); };
},
...
document.getElementById('x').onclick = this.bind(this.handle_click,
"this parameter is passed to handle_click()",
"as is this one");