Javascript调用错误的函数
我有两个javascript函数(Chrome和IE): 及 我这样叫:Javascript调用错误的函数,javascript,Javascript,我有两个javascript函数(Chrome和IE): 及 我这样叫: call(1,2); 但我在控制台上收到这个消息: call - param - 1 JavaScript中没有函数重载。JavaScript中没有函数重载。您正在尝试重载“调用”函数。Javascript不支持函数重载 一个解决方案是将函数分开,每个用例有不同的名称。您正试图重载“调用”函数。Javascript不支持函数重载 一个解决方案是将函数分开,每个用例有不同的名称。您可以使用参数 函数调用(){ log(
call(1,2);
但我在控制台上收到这个消息:
call - param - 1
JavaScript中没有函数重载。JavaScript中没有函数重载。您正在尝试重载“调用”函数。Javascript不支持函数重载
一个解决方案是将函数分开,每个用例有不同的名称。您正试图重载“调用”函数。Javascript不支持函数重载
一个解决方案是将函数分开,每个用例有不同的名称。您可以使用
参数
函数调用(){
log(“调用参数-”+参数.length);
}
电话(1);
呼叫(1,2);
呼叫(1,2,3)代码>您可以使用参数
函数调用(){
log(“调用参数-”+参数.length);
}
电话(1);
呼叫(1,2);
呼叫(1,2,3)代码>解决方案是使用带有内部条件的单个函数
function call(param1, param2){
if(param2){
console.log("call param - 2");
} else if(param1) {
console.log("call param - 1");
} else {
console.log("call invalid");
}
}
解决方案是使用一个包含条件的函数
function call(param1, param2){
if(param2){
console.log("call param - 2");
} else if(param1) {
console.log("call param - 1");
} else {
console.log("call invalid");
}
}
您尝试执行的操作称为函数重载。不幸的是,它在JavaScript中不可用
但是如果你需要的话,你可以试着去模拟它
请查看此链接,其中讨论了最佳方法:
您尝试执行的操作称为函数重载。不幸的是,它在JavaScript中不可用
但是如果你需要的话,你可以试着去模拟它
请查看此链接,其中讨论了最佳方法:
首先,js不检查参数计数:您可以使用任意数量的参数调用任何函数。
其次,声明函数与声明函数的含义相同,因此对于js引擎,您的代码是
var call = fun1
var call = fun2
与
var call
......
call = fun1
call = fun2
对于函数定义,值也将被提升,因此它实际上是
var call = fun2
......
因此,它将始终是后一个。
如果要访问普通函数中的所有参数,可以使用参数
,也可以这样做
function f(foo, bar, ...args) {...}
在arrow函数中没有参数。首先,js不检查参数计数:您可以使用任意数量的参数调用任何函数。
其次,声明函数与声明函数的含义相同,因此对于js引擎,您的代码是
var call = fun1
var call = fun2
与
var call
......
call = fun1
call = fun2
对于函数定义,值也将被提升,因此它实际上是
var call = fun2
......
因此,它将始终是后一个。
如果要访问普通函数中的所有参数,可以使用参数
,也可以这样做
function f(foo, bar, ...args) {...}
在arrow函数中,如果在调用(param1,param2)
之后定义了调用(param1)
,则不存在参数如果重新分配给调用
引用。因此,当您调用call(1,2)
时,将调用call(param1)
。JS中没有函数重载这样的东西。您可以使用以下两种方法之一来实现包含变量参数的函数。如果调用(param1)
是在调用(param1,param2)
之后定义的,则重新分配给调用
引用。因此,当您调用call(1,2)
时,将调用call(param1)
。JS中没有函数重载这样的东西。您可以使用以下两种方法之一来实现包含变量参数的函数。javascript如何知道您指的是哪一个?哦,c++/c#/java背景是itAFAIK,不能在JavaScript中使用函数重载。上次创建的函数就是被调用的函数。(如果你切换函数声明,你的结果将是“调用参数-2”。看看javascript如何知道你的意思?哦,c++/c#/java背景是itAFAIK,你不能在javascript中使用函数重载。你最后创建的函数就是被调用的函数。(如果你切换函数声明,你的结果将是。)“调用参数-2”。请参阅