Вы можете передать исходную функцию в анонимную функцию, которая возвращает функцию замены, которая имеет доступ к исходной функции.
* 1003 Е.Г. *
parseInt = (function parseInt(original) {
return function (x) {
console.log("original would've returned " + original(x));
// just random 'new' functionality
return (x | 0) * 2;
};
}(parseInt));
Пример вывода:
>> parseInt(10);
<< original would've returned 10
<< 20