是否有可能完全覆盖函数callwithargs,它接受一些参数与另一个没有参数的新函数callwithargs?
function callwithargs(a, b, c){
if(arg.length){
do this
}else{
do something else
}
}
function callwithargs(){
do a new thing
}
答案 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;
};