是否可以用另一个不带参数的新函数 callwithargs 完全覆盖接受某些参数的函数 callwithargs?
function callwithargs(a, b, c){
if(arg.length){
do this
}else{
do something else
}
}
function callwithargs(){
do a new thing
}
是否可以用另一个不带参数的新函数 callwithargs 完全覆盖接受某些参数的函数 callwithargs?
function callwithargs(a, b, c){
if(arg.length){
do this
}else{
do something else
}
}
function callwithargs(){
do a new thing
}
是的,javascript 不包含参数的数量作为函数的唯一标识符。 function callwithargs(...)
定义名为 的全局对象的属性callwithargs
。当您再次定义该属性时,您将覆盖它。
实际上,您也可以通过callwithargs = 2
例如说来覆盖它,然后它将用数字值覆盖该属性
我做过类似的事情,我希望这能引导你找到答案。本质上,在我的情况下,该函数附加到一个对象,在初始化对象后,我用我的新函数替换了该函数,如下所示:
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;
};