Page 134 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 134
Таким образом, вы можете вызвать любую функцию с любым количеством аргу
ментов. Если при вызове функции вы не укажете аргументы, то им неявно присваи
вается значение undefined.
function f х ) {
(
return ' В нутри f : х=$ { х } ' ;
f ( ) ; / / "Внутри f: x=undefined"
Далее в этой главе мы увидим, как справиться с ситуацией, в которой передается
больше аргументов, чем определено в функции.
Деструктуризация а р гументов
Подобно деструктурирующему присваиванию переменных (см. главу 5), суще
ствуют также деструктурированные аргументы (destructured argument) функций.
В конце концов, аргументы очень похожи на переменные! Рассмотрим деструктури
зацию объекта на индивидуальные переменные.
function getSentence ( { subject, verb, obj ect } )
t
b
return ' $ { s ubj ect } $ { ver } $ { o bjec } ' ;
const о = {
subj ect : " I " ,
verb : " l ov " ,
e
j
t
ob e ct : "JavaScrip " ,
} ;
getSentence ( o ) ; 1 1 "I love JavaScript "
Как и при деструктурирующем присваивании, имена свойств должны быть стро
ковыми идентификаторами, а переменным, которым не соответствуют свойства
в исходном объекте, назначается значение undefined.
Можно также деструктурировать массив.
function getSentence ( [ subj ect , verb, obj ect ] ) {
t
return ' $ { s ubj ect } $ { ver } $ { o bjec } ' ;
b
const arr = [ " I " , " l ov " , " J avaScript " ] ;
e
getSentence ( a rr) ; / / "I love JavaScript "
.
И наконец вы можете использовать оператор расширения ( . . ) для сбора любых
дополнительных аргументов.
function addPrefix (prefix, . . . words)
1 1 позже мы изучим лучший способ сделать это !
1 3 4 Глава 6. Функции

