Using partial application on event binding.
from jquery ninja book
by dandoyon
HTML
<ul id="results"></ul>
CSS
#results li.pass { color: green; }
#results li.fail { color: red; }
JavaScript
function assert(value, desc) {
var li = document.createElement("li");
li.className = value ? "pass" : "fail";
li.appendChild(document.createTextNode(desc));
document.getElementById("results").appendChild(li);
}
// http://osteele.com/sources/javascript/functional/
Function.prototype.partial = function() {
var fn = this,
args = Array.prototype.slice.call(arguments);
return function() {
var arg = 0;
for (var i = 0; i < args.length && arg < arguments.length; i++)
if (args[i] === undefined) args[i] = arguments[arg++];
return fn.apply(this, args);
};
};
var bindClick = document.body.addEventListener.partial("click", undefined, false);
bindClick(function() {
assert(true, "Click event bound via curried function.");
});