Function.prototype.modify = function(callback) { var __this__ = this; return function() { __this__(); callback.apply(__this__, arguments); }; }; var foo = function() { alert(1); } .modify(function() { alert(2); }); foo();