JavaScript: Параметры по умолчанию
Напомню, что аргумент может быть необязательным. У такого аргумента есть значение по умолчанию.
Например, функция getParentFor()
, которую вы использовали в некоторых упражнениях, принимает имя ребёнка первым аргументом, а вторым — строку 'mother'
или 'father'
. Второй аргумент — необязательный, и если не указывать его, то автоматически по умолчанию будет использоваться 'mother'
.
Эти два вызова равнозначны:
getParentFor('Jon Snow');
getParentFor('Jon Snow', 'mother');
Каким образом там сделаны аргументы по умолчанию? Давайте заглянем в определение этой функции:
const getParentFor = (child, parent = 'mother') => {
// какой-то код
};
Первый аргумент указан привычно — просто название переменной. Это делает аргумент обязательным.
Второй аргумент указан со значением в формате аргумент = какое_то_значение
. Точно так же, как при создании переменных и констант. Этот фрагмент = какое_то_значение
делает аргумент необязательным, и задаёт ему значение по умолчанию.
Аргументов по умолчанию может быть любое количество, но все они должны быть в конце списка аргументов. То есть такие строчки кода синтаксически некорректны:
const getParentFor = (childName = 'Jon', who) => {
const calculate = (a, b = 90, c) => {
const getPrices = (code = 4161, quantity, place) => {
Задание
Реализуйте функцию getCustomParentFor()
, которая принимает два аргумента:
- Строку с именем ребёнка.
- Строку с указанием родителя. Этот аргумент должен по умолчанию быть
'father'
.
Функция должна возвращать имя соответствующего родителя.
Пример вызова:
getCustomParentFor('Cersei Lannister'); // Tywin Lannister
Такой вызов вернёт имя отца.
- Внутри своей функции используйте уже готовую функцию
getParentFor()
. Как она работает, мы подробно разбирали раньше.