下面的代码:
var handler = { message: "Event handled", handleClick: function (event) { alert(this.message); } }; function bind(fn, context) { return function () { return fn.apply(context, arguments); }; } function ff() { document.getElementById("btn").onclick = bind(handler.handleClick, handler); }
上面的bind函数返回了一个匿名函数,内部的fn.apply(context, arguments);中的arguments极为穿进去的方法参数。