Page 135 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 135
const prefixedWords = [ ] ;
for ( l et i=O ; i<words . l ength; i++) (
prefixedWords [ i ] = prefix + words [ i ] ;
return prefixedWords ;
addPrefix ( " c on" , "ver e " , "vex" ) ; // [ " converse ", "convex "]
s
Обратите внимание: если вы используете оператор расширения в объявлении
функции, то это должен быть последний аргумент. Если вы поместите аргументы
после него, у JavaScript не будет способа выяснить, что должно войти в расширение
аргумента, а что должно войти в остальные аргументы.
В ESS подобные функциональные возможности реализуются с помо
щью специальной переменной r guments, которая существует только
a
в пределах тела функции. Эта переменная была не фактическим мас
сивом, а "подобным массиву" объектом, который зачастую требовал
специальной обработки или преобразования в надлежащий массив.
Расширение аргументов в ЕSб ликвидирует этот недостаток и ему
должно отдаваться предпочтение перед использованием переменной
a r guments (которая все еще доступна).
Стандартные р г ументы
а
Нововведением ЕSб является способность определять стандартные значения
(default value) для аргументов. Обычно, когда значения для аргументов не заданы, им
присваивается значение undefined. С помощью стандартных значений можно опреде
лить некое другое значение для тех аргументов, которые не были переданы в функцию.
(
function f а , Ь = "default " , с = 3 ) {
return ' $ { а ) - $ { Ь } - $ { с } ' ;
f ( S , 6 , 7 ) ; 1 1 " 5 - б - 7 "
f ( S , 6 ) ; 1 1 " 5 - б - 3 "
f ( 5 ) ; 1 1 "5 - default - 3"
f ) ; 1 1 "undefined - defa u l t - 3 "
(
Функции как свойства объектов
Когда функция является свойством объекта, ее зачастую называют методом
(method), чтобы отличать от обычной функции (вскоре мы узнаем больше разли
чий между функцией и методом). Мы уже видели в главе 3, как можно добавить
Функции как свойства объектов 1 3 5

