You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
sayHi(); //Привет // прежняя тоже работает (почему бы нет)
58
58
```
59
59
60
60
Давайте детально разберём всё, что тут произошло:
@@ -63,17 +63,18 @@ sayHi(); // Hello // прежняя тоже работает (почем
63
63
2. В строке `(2)` мы скопировали её значение в переменную `func`. Обратите внимание (ещё раз): нет круглых скобок после `sayHi`. Если бы они были, то выражение `func = sayHi()` записало бы *результат вызова*`sayHi()` в переменную `func`, а не саму *функцию*`sayHi`.
64
64
3. Теперь функция может быть вызвана с помощью обеих переменных `sayHi()` и `func()`.
65
65
66
-
Заметим, что мы можем использовать и Function Expression чтобы создать `sayHi`, в первой строке:
66
+
Заметим, что мы могли бы использовать и Function Expression для того, чтобы создать `sayHi` в первой строке:
67
67
68
68
```js
69
-
letsayHi=function() { ... };
69
+
letsayHi=function() {
70
+
alert( "Привет" );
71
+
};
70
72
71
73
let func = sayHi;
72
74
// ...
73
75
```
74
76
75
-
Для нашего примера результат будет таким же. Надеюсь, происходящее теперь стало более понятным.
76
-
77
+
Результат был бы таким же.
77
78
78
79
````smart header="Зачем нужна точка с запятой в конце?"
79
80
У вас мог возникнуть вопрос: Почему в Function Expression ставится точка с запятой `;` на конце, а в Function Declaration нет:
@@ -130,7 +131,7 @@ function showCancel() {
130
131
ask("Вы согласны?", showOk, showCancel);
131
132
```
132
133
133
-
Перед тем, как мы рассмотрим, как можно записать это гораздо короче, давайте обратим внимание, что в браузере (и в отдельных случаях на стороне сервера) подобное использование функций очень распространено. Основным отличием между реализацией таких функций в реальном проекте и примером выше является то, что в реальности функции используют более сложные способы взаимодействия с пользователем, чем простой вызов `confirm`. В браузерах такие функции обычно отображают красивые диалоговые окна. Но это уже другая история.
134
+
На практике подобные функции очень полезны. Основное отличие "реальной" функции `ask` от примера выше будет в том, что она использует более сложные способы взаимодействия с пользователем, чем простой вызов `confirm`. В браузерах такие функции обычно отображают красивые диалоговые окна. Но это уже другая история.
134
135
135
136
**Аргументы функции `ask` ещё называют *функциями-колбэками* или просто *колбэками*.**
0 commit comments