javascript函数覆盖

时间:2013-02-06 20:07:50

标签: javascript

是否有可能完全覆盖函数callwithargs,它接受一些参数与另一个没有参数的新函数callwithargs?

function callwithargs(a, b, c){
       if(arg.length){
        do this
     }else{
        do something else
    }
    }

function callwithargs(){
  do a new thing
} 

2 个答案:

答案 0 :(得分:2)

是的,javascript不包含参数数量作为函数的唯一标识符。 function callwithargs(...)定义名为callwithargs的全局对象的属性。再次定义该属性时,将覆盖它。

实际上你也可以通过说callwithargs = 2来覆盖它,然后用数字值覆盖属性

答案 1 :(得分:1)

我做过类似的事情,希望这会引导你回答。基本上在我的情况下,函数附加到一个对象,并在初始化对象后,我用我的新函数替换了该函数,如下所示:

var oldFunction = myObject.theFunction;
myObject.theFunction = function () {
    // my new function
    var result = oldFunction.apply(this, arguments); // Calls the old function using the arguments keyword

    return result;
};