我正在尝试导出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)。
答案 0 :(得分:0)
javascript没有重载。如果您确实需要,请改用typescript。 或使用以下解决方案。
/**
* 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