Показать сообщение отдельно
  #9 (permalink)  
Старый 21.12.2010, 15:38
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

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'))
Ответить с цитированием