在另一个js文件中导出和重用js文件的重载功能

时间:2019-12-16 12:10:18

标签: javascript node.js

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

reusefun.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)。

2 个答案:

答案 0 :(得分:0)

没有重载。如果您确实需要,请改用。 或使用以下解决方案。

/**
 * For checkbox
 */
$("input[type='checkbox'][name='someCheckboxName']:checked").length
// OR
$("input[type='checkbox'][name='someCheckboxName']").filter("checked").length

/**
 * For Radio Buttons
 */
$("input[type="radio'][name='someRadioButtonName']:checked").length
// OR
$("input[type='radio'][name='someRadioButtonName']").filter("checked").length

答案 1 :(得分:0)

js中没有所谓的函数重载之类的东西,您所能做的就是使用rest param在函数中传递不同数量的args并据此应用逻辑。片段。

list1 = [1,2,3,4,5,4,3,2,1,2,3,3,4,2,1,3,2,1,3,5]
d = {}
for num in list1:
    d[num] = d.get(num,0) + 1
# at this point, d looks like this:
# {1: 4, 2: 5, 3: 6, 4: 3, 5: 2}

# Then either:
print('mode =',max(d,key = lambda key:d[key]))
# outputs: 
# mode = 3

# or
print('mode = {0}, occurs {1} times'.format(*max(list(d.items()),key = lambda item:item[1])))
# outputs:
# mode = 3, occurs 6 times