0

是否可以用另一个不带参数的新函数 callwithargs 完全覆盖接受某些参数的函数 callwithargs?

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

function callwithargs(){
  do a new thing
} 
4

2 回答 2

2

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

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

于 2013-02-06T20:14:33.203 回答
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;
};
于 2013-02-06T20:14:18.607 回答