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
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/16-function-expressions/article.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,10 +22,6 @@ let řekniAhoj = function() {
22
22
};
23
23
```
24
24
25
-
Zde je funkce vytvořena a výslovně přiřazena do proměnné jako kterákoli jiná hodnota. Nezáleží na tom, jak je funkce definována. Je to jen hodnota uložená do proměnné `řekniAhoj`.
26
-
27
-
Význam obou částí kódu je stejný: „vytvořit funkci a uložit ji do proměnné `řekniAhoj`“.
28
-
29
25
Zde vidíme proměnnou `řekniAhoj`, do níž je uložena hodnota, kterou je nová funkce, vytvořená jako `function() { alert("Ahoj"); }`.
30
26
31
27
Protože k vytvoření funkce dochází v kontextu přiřazovacího výrazu (na pravé straně `=`), je to *funkční výraz*.
@@ -56,7 +52,9 @@ Všimněte si, že poslední řádek nevolá funkci, protože za `řekniAhoj` ne
56
52
57
53
V JavaScriptu je funkce hodnota, takže s ní můžeme zacházet jako s hodnotou. Výše uvedený kód zobrazí její řetězcovou reprezentaci, kterou je zdrojový kód funkce.
58
54
59
-
Samozřejmě, funkce je speciální hodnota v tom smyslu, že ji můžeme volat, např. `řekniAhoj()`. Je to však stále hodnota, a proto s ní můžeme pracovat jako s hodnotou jakéhokoli jiného druhu.
55
+
Samozřejmě, funkce je speciální hodnota v tom smyslu, že ji můžeme volat, např. `řekniAhoj()`.
56
+
57
+
Je to však stále hodnota, a proto s ní můžeme pracovat jako s hodnotou jakéhokoli jiného druhu.
60
58
61
59
Můžeme zkopírovat funkci do jiné proměnné:
62
60
@@ -68,7 +66,7 @@ function řekniAhoj() { // (1) vytvoření
řekniAhoj(); // Ahoj // tohle pořád funguje taky (proč by nemělo)
69
+
řekniAhoj(); // Ahoj // i tohle stále funguje (proč by nemělo)
72
70
```
73
71
74
72
Co se v uvedeném příkladu přesně stane:
@@ -90,6 +88,7 @@ let funkce = řekniAhoj;
90
88
91
89
Všechno bude fungovat stejně.
92
90
91
+
93
92
````smart header="Proč je na konci středník?"
94
93
Možná se divíte, proč funkční výraz obsahuje na konci středník `;`, ale deklarace funkce ne:
95
94
@@ -108,7 +107,7 @@ Odpověď je jednoduchá: funkční výraz je zde vytvořen jako `function(…)
108
107
Středník by zde byl i u jednoduššího přiřazení, například `let řekniAhoj = 5;`, a je zde také u přiřazení funkce.
109
108
````
110
109
111
-
## Callbackové funkce
110
+
## Funkce zpětného volání (callbackové funkce)
112
111
113
112
Podíváme se na další příklady předávání funkcí jako hodnot a používání funkčních výrazů.
114
113
@@ -216,7 +215,7 @@ Deklarace funkcí jsou odlišné.
216
215
217
216
Například globální deklarace funkce je viditelná v celém skriptu, ať se nachází kdekoli.
218
217
219
-
Je to způsobeno vnitřními algoritmy. Když JavaScript připravuje spuštění skriptu, nejprve v něm najde globální deklarace funkcí a tyto funkce vytvoří. Můžeme to považovat za „inicializační krok“.
218
+
Je to způsobeno vnitřními algoritmy. Když JavaScript připravuje spuštění skriptu, nejprve v něm najde globální deklarace funkcí a tyto funkce vytvoří. Můžeme to považovat za „přípravnou fázi“.
220
219
221
220
Teprve až jsou všechny deklarace funkcí zpracovány, kód se vykoná. Proto má k těmto funkcím přístup.
222
221
@@ -292,7 +291,7 @@ if (věk < 18) {
292
291
uvítání(); // \ (spustí se)
293
292
*/!*
294
293
// |
295
-
function uvítání() { // |
294
+
function uvítání() { // |
296
295
alert("Ahoj!"); // | deklarace funkce je k dispozici
297
296
} // | všude v bloku, v němž je funkce deklarována
298
297
// |
@@ -302,7 +301,7 @@ if (věk < 18) {
302
301
303
302
} else {
304
303
305
-
function uvítání() {
304
+
function uvítání() {
306
305
alert("Zdravíme vás!");
307
306
}
308
307
}
@@ -359,6 +358,7 @@ uvítání(); // nyní je to v pořádku
359
358
*/!*
360
359
```
361
360
361
+
362
362
```smart header="Kdy zvolit deklaraci funkce a kdy funkční výraz?"
363
363
Orientační pravidlo zní, že když potřebujeme deklarovat funkci, měli bychom napřed zvážit syntaxi deklarace funkce. Ta nám dává více svobody v tom, jak zorganizovat kód, protože takovou funkci můžeme volat ještě předtím, než je deklarována.
364
364
@@ -377,4 +377,4 @@ Je také lépe čitelná, protože je jednodušší najít v kódu `function f(
377
377
378
378
Ve většině případů, kdy potřebujeme deklarovat funkci, dáváme přednost deklaraci funkce, protože pak je funkce viditelná ještě před samotnou deklarací. To nám dává více možností při organizaci kódu a je to zpravidla čitelnější.
379
379
380
-
Funkční výrazy bychom tedy měli používat jen tehdy, když nám pro naše účely deklarace funkce nestačí. V této kapitole jsme viděli několik takových příkladů a v budoucnu uvidíme další.
380
+
Funkční výrazy bychom tedy měli používat jen tehdy, když nám pro naše účely deklarace funkce nestačí. V této kapitole jsme viděli několik takových příkladů a v budoucnu uvidíme další.
0 commit comments