Page 124 - 6105
P. 124
В JavaScript немає «перевантаження» функцій. У деяких мовах програміст
може створити дві функції з однаковим ім'ям, але різним набором аргументів, а
при виклику інтерпретатор сам вибере потрібну:
function log (a) {
...
}
function log (a, b, c) {
...
}
log (a); // зголоситься перша функція
log (a, b, c); // зголоситься друга функція
Це називається «поліморфізмом функцій» або «перевантаженням функцій».
В JavaScript «перевантаження функцій» відсутнє.
Може бути тільки одна функція з іменем log, яку можна викликати з будь-
якими аргументами, а вже всередині функції можна подивитися, які аргументи
задано. У прикладі вище друге оголошення log просто перевизначає перше
оголошення.
Деколи виникає потреба у отриманні значень аргументів, які відсутні в
списку параметрів. Доступ до них здійснюється через «псевдо-масив» arguments.
Він містить список аргументів за номерами: arguments [0], arguments [1] ...,
а також властивість length. Наприклад, виведемо список всіх аргументів:
function sayHi () {
for (var i = 0; i <arguments.length; i ++) {
alert ( "Привіт," + arguments [i]);
}
}
sayHi ( "Вінні", "П'ятачок"); // 'Привіт, Вінні',
'Привіт, П'ятачок'
123