首页 > 解决方案 > Javascript:使用同名的旧函数覆盖新函数

问题描述

对于任何功能,例如:

function my_function(arg){
    switch(arg){
        case 1: return 100;
        case 2: return 150;
        case 3: return 300;
    }
}

我想case 4: 500在函数中添加一个新的,所以它应该像这样工作:

function my_function(arg){
    switch(arg){
        case 1: return 100;
        case 2: return 150;
        case 3: return 300;
        case 4: return 500;
    }
}

但我不想再次用相同的脚本覆盖该函数。所以我尝试了这种方式:

function my_function(arg){
    switch(arg){
        case 4: 500;
        default: my_function(arg);
    }
}

但是当我调用其他情况时1 2 3,该函数会不断调用自身。(我明白为什么会这样)

有没有办法来解决这个问题?

更一般地说,有没有办法覆盖一个函数,以便新函数可以使用旧函数?

PS我不想创建一个具有不同名称的函数来复制旧函数。

标签: javascriptrecursionoverwrite

解决方案


推荐阅读