method chain (function(){ function chain() { } chain.prototype = { alert: function(value) { alert(value); return this; } }; new chain().alert(1).alert(2).alert(3); })() function chain (function(){ function chain(value) { alert(value); return chain; } chain(1)(2)(3); })() arbitrary function (function(){ function chain(f) { return function chain_impl() { f.apply(null, arguments); return chain_impl;