Vulkan, в какой-то степени поддерживает. Не в таком, конечно, привычном виде, где для каждой версии вызова используются по сути различные функции, но организовать функцию, выполняющую различные действия в зависимости от количества / типа аргументов - можно. Пример
function multiFunction(a, b, c){
if(arguments.length == 1){
if(typeof a === 'string') return a.toUpperCase();
if(typeof a === 'number') return Math.sqrt(a);
return a;
}
if(arguments.length == 2){
return a + b;
}
if(arguments.length == 3){
return Math.min(a, b, c);
}
return 'No function matches arguments list';
}
alert([
multiFunction(25),
multiFunction(25, 64),
multiFunction(25, 'String'),
multiFunction('Hello'),
multiFunction('Hello', 'world'),
multiFunction('Hello', 'world', '!'),
multiFunction(3, 4, 0)
].join('\n'))