JavaScript с нуля

Кирупа Чиннатамби
50
5
(2 голоса)
1 1

Аннотация: jаvascript еще никогда не был так прост! Вы узнаете все возможности языка программирования без общих фраз и неясных терминов. Подробные примеры, иллюстрации и схемы будут понятны даже новичку. Легкая подача информации и живой юмор автора превратят нудное заучивание в занимательную практику по написанию кода. Дойдя до последней главы, вы настолько прокачаете свои навыки, что сможете решить практически любую задачу, будь то простое перемещение элементов на странице или даже собственная браузерная игра.

Книга добавлена:
24-12-2022, 06:32
0
1 394
309
JavaScript с нуля
Содержание

Читать книгу "JavaScript с нуля"



Функции внутри функций

Первое, что мы сделаем, — проясним, что происходит, когда вы используете функции внутри функций, причем внутренняя функция возвращается. Для начала рассмотрим короткий пример.

Взгляните на этот код:

function calculateRectangleArea(length, width) {

return length * width;

}

let roomArea = calculateRectangleArea(10, 10);

alert(roomArea);

Функция calculateRectangleArea получает два аргумента и возвращает результат их умножения туда, откуда пришел вызов. В данном примере роль стороны, направившей вызов, играет переменная roomArea.

После выполнения этого кода переменная roomArea содержит результат умножения 10 на 10, равный 100 (рис. 9.2).

Рис. 9.2. Результат roomArea

Как вы знаете, функция может вернуть практически что угодно. В данном случае мы вернули число. Вы так же легко можете вернуть текст (то есть строку), значение undefined, пользовательский объект и т. д. До тех пор пока код, вызывающий функцию, знает, как поступить с возвращаемым ей результатом, вы можете делать практически все, что пожелаете. Вы даже можете вернуть другую функцию. На этом моменте остановимся поподробнее.

Ниже представлен простейший пример того, что я имею в виду:

function youSayGoodBye() {

alert("Good Bye!");

function andISayHello() {

alert("Hello!");

}

return andISayHello;

}

У нас могут быть функции, содержащие в себе другие функции. В данном примере есть функция youSayGoodbye, которая содержит alert и функцию andISayHello (рис. 9.3).

Рис. 9.3. Функция внутри функции

В этом примере интересно то, что возвращает функция youSayGoodbye, когда ее вызывают. А возвращает она функцию andISayHello:

function youSayGoodBye() {

alert("Good Bye!");

function andISayHello() {

alert("Hello!");

}

return andISayHello;

}

Попрактикуемся на таком примере. Для вызова функции инициализируем переменную, указывающую на youSayGoodBye:

let something = youSayGoodBye();

В момент выполнения этой строки кода будет также выполнен весь код внутри функции youSayGoodBye. Это значит, что вы увидите диалоговое окно (благодаря alert), говорящее нам Good Bye! (рис. 9.4).

Рис. 9.4. Диалоговое окно Good Bye!

Как часть процесса выполнения до завершения функция andISayHello будет также создана и затем возвращена. В этот момент наша переменная — something, способная обратиться только к одному элементу, а именно к функции andISayHello (рис. 9.5).

Рис. 9.5. Переменная something и функция andISayHello

С точки зрения переменной something внешняя функция youSayGoodBye просто исчезает. Так как теперь переменная something указывает на функцию, вы можете активировать эту функцию, вызвав ее, как обычно, с помощью открывающих и закрывающих скобок:

let something = youSayGoodBye();

something();

Когда вы это сделаете, произойдет выполнение внутренней возвращенной функции (то есть andISayHello). Как и раньше, ждите появления диалогового окна, но теперь оно скажет Hello! (рис. 9.6), что определено в alert внутри этой функции.

Рис. 9.6. Hello!

Все это скорее похоже на обзор. Единственное новое, о чем вы могли узнать, — это то, что как только функция возвращает значение, она уходит из поля действия. Остается только возвращенное значение.

Хорошо. А теперь, как я и обещал, мы подобрались к границе вражеской территории. В следующем разделе дополним только что пройденный материал, рассмотрев схожий пример, но с некоторой особенностью.


Скачать книгу "JavaScript с нуля" - Кирупа Чиннатамби бесплатно


50
5
Оцени книгу:
1 1
Комментарии
Минимальная длина комментария - 7 знаков.
Книжка.орг » Образование » JavaScript с нуля
Внимание