Page 138 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 138
const о = {
name : ' J ulie ' ,
greetBackwards : function ( ) {
i
const self = th s ;
funct ion getReverseName ( )
let nameBackwards = ' ' ;
=
for ( l et i=sel f . name . l ength- 1 ; i> O ; i--) {
l
nameBackwards += se f . name [ i ] ;
return nameBackwards ;
return ' $ { getReverseName ( ) } s i eman ym , o lle ' ;
H
} ,
} ;
o . greetBackwards ( ) ;
Это общепринятая методика, и вы часто будете встречать присваивание значения
переменной this константам self, или that. Стрелочные функции, которые мы бу
дем рассматривать далее в этой главе, являются еще одним средством решения этой
проблемы.
Функциональные выражения и а н о н и м н ы е функции
До сих пор мы имели дело исключительно с объявлениями функций (function
declaration), которые присваивают функции и тело (т.е. то, что функция дела
ет), и идентификатор (он позволяет впоследствии вызывать функцию по имени).
JavaScript поддерживает также анонимные функции (anonymous function), у которых
не обязательно есть идентификатор.
У вас может возникнуть резонный вопрос "Как использовать функцию, у кото
рой нет идентификатора? Как мы должны вызывать ее без идентификатора?" От
вет кроется в понятии функциональных выражений (function expression). Известно,
что выражение - это нечто, что вычисляет значение, и мы также знаем, что функ
ция - это также значение, как и все остальное в JavaScript. Функциональное вы
ражение - это просто средство для того, чтобы объявить (возможно, безымянную)
функцию. Функциональное выражение может быть присвоено чему-нибудь (в ре
зультате ему будет назначен идентификатор) или сразу же вызвано2•
Функциональные выражения синтаксически идентичны объявлениям функций,
за исключением того, что вы можете опустить имя функции. Давайте рассмотрим
пример, в котором мы используем функциональное выражение и присвоим резуль
тат переменной (который фактически эквивалентен объявлению функции).
2 Это немедленно вызываемое функ ц иональное выражение (Immediately Invoked Function Expression -
IIFE), которое мы рассмотрим в главе 7.
1 3 8 Глава 6. Функции

