Last Updated: February 25, 2016
·
882
· elclanrs

Function.prototype.extend

Function.prototype.extend = function() {
  var fns = [this].concat([].slice.call(arguments));
  return function() {
    for (var i=0; i<fns.length; i++) {
      fns[i].apply(this, arguments);
    }
  };
};

// Usage:

var a = function(){ console.log('a'); };
var b = function(){ console.log('b'); };
var c = function(){ console.log('c'); };

var d = a.extend(b,c,function(){ console.log('d'); });

d(); //=> "a".."b".."c".."d"