Javascript 在另一个js文件中导出并重用js文件的重载函数

Javascript 在另一个js文件中导出并重用js文件的重载函数,javascript,node.js,typescript,Javascript,Node.js,Typescript,我正在尝试导出js文件的所有重载函数。这样我就可以在其他js文件中重用它们。但是,每当我试图调用任何函数时,每次都会调用参数化程度最高的函数 reuseefun.js exports.getMessage = function(val1) { return val1; } exports.getMessage = function(val1,val2) { return val1+ " " +val2; } exports.getMessage = function(val1,val

我正在尝试导出js文件的所有重载函数。这样我就可以在其他js文件中重用它们。但是,每当我试图调用任何函数时,每次都会调用参数化程度最高的函数

reuseefun.js

exports.getMessage = function(val1) {
   return val1;
}
exports.getMessage = function(val1,val2) {
   return val1+ " " +val2;
}
exports.getMessage = function(val1,val2,val3) {
   return val1+ " " +val2+ " " +val3;
}
假设我像下面这样使用这个文件

myfile.js

const re = require('./reusefun);
console.log(re.getMessage("a"));
然后调用getMessage(val1、val2、val3)而不是getMessage(val1)。

没有重载。如果你真的想用它来代替。 或者使用下面的解决方案

exports.getMessage=(arrayArgs)=>arrayArgs.join(“”);
log(getMessage([“A”、“B”、“C”]);
//预期输出:A B C
没有重载。如果你真的想用它来代替。 或者使用下面的解决方案

exports.getMessage=(arrayArgs)=>arrayArgs.join(“”);
log(getMessage([“A”、“B”、“C”]);

//预期输出:在js中没有所谓的函数重载,您所能做的就是在函数中传递不同数量的参数,并相应地应用逻辑,正如我在代码段中提到的

函数和(…theArgs){
返回args.reduce((acc,值)=>{
acc=`${acc}${value}`
返回acc;
});
}
控制台日志(总和(1,2,3));
控制台日志(总和(1,2));

日志(总和(1,2,3,4))js中没有所谓的函数重载,您所能做的就是在一个函数中传递不同数量的参数,并相应地应用逻辑,正如我在代码片段中提到的那样

函数和(…theArgs){
返回args.reduce((acc,值)=>{
acc=`${acc}${value}`
返回acc;
});
}
控制台日志(总和(1,2,3));
控制台日志(总和(1,2));

日志(总和(1,2,3,4))Javascript实际上并没有像那样进行函数重载。您必须将自己的重载逻辑写入单个函数JS不支持重载函数,这里您将用
getMessage(val1,val2,val3)
替换
getMessage(val1,val2,val3)
在这种特殊情况下,您可以使用
[a,b,c].join(“”)以获得相同的结果。如果您对使用自己的重载逻辑来处理可变数量/类型的参数感到好奇,这本身就是一个有趣的问题在你的代码中,你没有重载你的函数,你只是一次又一次地分配属性getMessage,最后一个赋值属性是Resiste,这就是为什么它总是调用参数最高的函数赋值函数,在最后接受两个参数,然后它总是调用这个函数因此最好使用exports.getMessage=(…arr)=>arr.join(“”);这适用于每种情况。Javascript并没有像那样真的进行函数重载。您必须将自己的重载逻辑写入单个函数JS不支持重载函数,这里您将用
getMessage(val1,val2,val3)
替换
getMessage(val1,val2,val3)
在这种特殊情况下,您可以使用
[a,b,c].join(“”)以获得相同的结果。如果您对使用自己的重载逻辑来处理可变数量/类型的参数感到好奇,这本身就是一个有趣的问题在你的代码中,你没有重载你的函数,你只是一次又一次地分配属性getMessage,最后一个赋值属性是Resiste,这就是为什么它总是调用参数最高的函数赋值函数,在最后接受两个参数,然后它总是调用这个函数因此最好使用exports.getMessage=(…arr)=>arr.join(“”);这适用于任何情况。