var handler = { message: 'event handled', handlerClick: function (e) { console.log(this.message); } }; var btn = document.getElementById('myBtn'); btn.onclick = handler.handlerClick;
btn.onclick = function (e) { handler.handlerClick(e); }; // 或者採用bind方法: btn.onclick = handler.handlerClick.bind(handler);
function bind (fn ,context) { // 建立一個閉包 return function () { // arguments是內部函數的,而不是bind函數的, // 在這個例子中,arguments是事件處理函數中參數,例如event對象 return fn.apply(context, arguments) } } btn.onclick = bind(handler.handlerClick, handler);