3

在 JavaScript 中,如何创建一个与现有函数同名的新函数,同时保留原始函数以便可以在新函数中调用它?

4

3 回答 3

8

您可以将原始函数传递给一个匿名函数,该函数返回一个可以访问原始函数的替换函数。

例如

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
于 2010-06-10T02:17:51.550 回答
2

您想实现函数包装,请查看以下文章:

于 2010-06-10T02:18:45.160 回答
1

您可以简单地将旧函数分配给具有不同名称的变量:

var old_parseInt = parseInt;

function parseInt(s) {
   return old_parseInt(s) + 1;
}
于 2010-06-10T02:27:52.623 回答