console
function bind(fn, context) {
var args = Array.prototype.slice.call(arguments, 2);
return function() {
var innerArgs = Array.prototype.slice.call(arguments);
var finalArgs = args.concat(innerArgs);
return fn.call(context, ...finalArgs);
}
}
var handler = {
message: "Event handled",
handleClick: function(name, event) {
console.log(this.message + ":" + name + ":" + event.type);
}
};
var btn = document.getElementById("my-btn");
btn.addEventListener("click", bind(handler.handleClick,handler,"my-btn"));
<button id="my-btn">click</button>