在JavaScript中,如何创建一个与现有函数同名的新函数,同时还保留原始函数,以便可以从新函数中调用它?
答案 0 :(得分:8)
您可以将原始函数传递给匿名函数,该函数返回一个可以访问原始函数的替换函数。
E.g。
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
答案 1 :(得分:2)
您想要实现功能包装,请查看以下文章:
答案 2 :(得分:1)
您可以简单地将旧函数分配给具有不同名称的变量:
var old_parseInt = parseInt;
function parseInt(s) {
return old_parseInt(s) + 1;
}