JavaScript с нуля
- Автор: Кирупа Чиннатамби
- Жанр: Образование
- Дата выхода: 2021
- Цикл: Библиотека программиста
Читать книгу "JavaScript с нуля" полностью
Создание функции, принимающей аргументы
Предыдущий пример с sayHello слишком прост:
function sayHello() {
alert("hello!");
}
sayHello();
Мы вызываем функцию, и она производит определенные действия. Такое упрощение вполне нормально, потому что все функции работают одинаково. Отличия состоят лишь в особенностях того, как производится вызов функции, откуда в нее поступают данные и т. д. Первая особенность, которую мы рассмотрим, относится к функциям, принимающим
Начнем с простого и знакомого примера:
alert("my argument");
Перед нами функция alert. Вероятно, мы уже видели ее пару-тройку (или несколько десятков) раз. Суть в том, что в эту функцию передается так называемый
Аргумент — это то, что находится между открывающими и закрывающими скобками. Функция alert — лишь одна из множества возможных функций, принимающих аргументы. Многие из функций, которые вы создадите в будущем, будут также принимать аргументы.
В этой главе мы рассматривали еще одну функцию, принимающую аргументы, а именно showDistance:
function showDistance(speed, time) {
alert(speed * time);
}
Рис. 3.8. Отображение аргумента
Понять, что функция принимает аргументы, можно, просто взглянув на ее описание (объявление):
function showDistance(speed, time) {
alert(speed * time);
}
То, что ранее было пустыми скобками после имени функции, теперь содержит информацию о количестве аргументов, необходимых функции, а также подсказывает, какие значения заданы этим аргументам.
В случае с showDistance можно сделать вывод о том, что эта функция принимает два аргумента. Первый из них соответствует speed (скорости), а второй — time (времени).
Мы задаем значения аргументов в рамках вызова функции:
function showDistance (speed, time) {
alert(speed * time);
}
showDistance(10, 5);
В нашем случае мы вызываем функцию showDistance и задаем значения, которые хотим в нее передать, внутри скобок (рис. 3.9).
Поскольку мы передаем больше одного аргумента, то перечисляем значение каждого через запятую. И пока я не забыл, отмечаю еще один важный момент: важен порядок, в котором вы определяете аргументы.
showDistance(10, 5);
Рис. 3.9. Значения, которые мы хотим передать в функцию
Давайте рассмотрим этот процесс подробнее и начнем с диаграммы на рис. 3.10.
Рис. 3.10. Диаграмма вызова функции
Для вызова в функцию showDistance передается 10 как аргумент для speed и 5 — для time. Изображенный на диаграмме перенос полностью основан на последовательности.
Как только передаваемые значения достигают функции, определенные для аргументов имена начинают обрабатываться как имена переменных (рис. 3.11).
Рис. 3.11. Имена аргументов работают как переменные
Мы можем использовать эти имена переменных, чтобы легко и без забот ссылаться на значения, содержащиеся в аргументах внутри функции.
Несоответствие числа аргументов
Если вы не задаете аргументы при вызове или задаете меньше или больше аргументов, чем требуется функции, все по-прежнему может работать. Чтобы избежать подобных ситуаций, вы можете применять защитное программирование, и в дальнейшем мы рассмотрим этот вопрос подробнее.
В целом, чтобы создать код с более четкой структурой, необходимо передавать в функцию соответствующее число аргументов.