ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ javascript
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ β ΡΡΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ Π΄Π°ΡΡ Π²Π°ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ Scope (en-US) Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π JavaScript Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ.
ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° alert() Π²Π½ΡΡΡΠΈ displayName() Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ name ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠΉ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ (lexical scoping): Π² JavaScript ΠΎΠ±Π»Π°ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠΎ Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄Π΅ (ΡΡΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ), ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΌ Π²ΠΎΠ²Π½Π΅. ΠΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Lexical scoping (ΠΎΠ±Π»Π°ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½Π°Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ).
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΠ΅
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄, ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ init() ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°: ΡΡΡΠΎΠΊΠ° «Mozilla» Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π² JavaScript alert Π΄ΠΈΠ°Π»ΠΎΠ³Π΅. Π§ΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅Ρ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π»Ρ Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ displayName() Π±ΡΠ»Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π° ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅ΠΉ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ»Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°.
ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ, ΡΡΠΎ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ, Π½ΠΎ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅-ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ makeFunc() ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ name Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½Π°. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ JavaScript.
Π Π²ΠΎΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β ΡΡΠ½ΠΊΡΠΈΡ makeAdder :
ΠΠΎ ΡΡΡΠ΅ΡΡΠ²Ρ makeAdder β ΡΡΠΎ ΡΠ°Π±ΡΠΈΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΉ: ΠΎΠ½Π° ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ±Π°Π²Π»ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π½Π°ΡΡ ΡΠ°Π±ΡΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄Π²ΡΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ β ΠΎΠ΄Π½Π° ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅Ρ 5 ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, Π²ΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅Ρ 10.
add5 ΠΈ add10 β ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ. ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π΅Π»ΡΡ ΠΎΠ΄Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π»Π° ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. Π ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ add5 x β ΡΡΠΎ 5, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ add10 x β ΡΡΠΎ 10.
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ²ΡΠ·Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ (Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅) Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΡΠ΅Π²ΠΈΠ΄Π½Π° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»Ρ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π³Π΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΠΌ ΡΠ²ΡΠ·Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ (ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°) Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ.
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ Π²Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: Π΄ΠΎΠΏΡΡΡΠΈΠΌ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅ΠΊΡΡΠ°. ΠΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ font-size Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ body Π² ΠΏΠΈΠΊΡΠ΅Π»Π°Ρ , Π° Π·Π°ΡΠ΅ΠΌ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΠΎΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΡΡΠ°Π½ΠΈΡΡ (ΡΠ°ΠΊΠΈΡ , ΠΊΠ°ΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ) Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ em:
Π’ΠΎΠ³Π΄Π° Π½Π°ΡΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ font-size ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° body, Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡΠΎ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅ΠΊΡΡΠ° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ JavaScript:
ΠΠΌΡΠ»ΡΡΠΈΡ ΡΠ°ΡΡΠ½ΡΡ (private) ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ
JavaScript Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊΠΎΠ΅, Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ. Π§Π°ΡΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΠ΄Ρ, ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΡΠ½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΡΠ½, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ Π½Π΅ Π·Π°ΡΠΎΡΡΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΠΎΠ΄ Π½ΠΈΠΆΠ΅ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π°ΠΊΡΡΡΡΠΌ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (private) ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ. Π’Π°ΠΊΠ°Ρ ΠΌΠ°Π½Π΅ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅:
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΡΡΡΡΡΠΈΠΊΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ makeCounter() ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΡΡ ΡΠ²ΠΎΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅). Π’ΠΎ Π΅ΡΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ privateCounter Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΡΡΡΡΡΠΈΠΊΠΎΠ² ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ, ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΡΠ΄ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ², ΠΎΠ±ΡΡΠ½ΠΎ Π°ΡΡΠΎΡΠΈΠΈΡΡΠ΅ΠΌΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΠΈ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ Π² ΡΠΈΠΊΠ»Π΅: ΠΡΠ΅Π½Ρ ΡΠ°ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ°
ΠΠ°ΡΡΠΈΠ² helpText ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΠΈ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Π΄Π»Ρ ΡΡΡΡ ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π°. Π¦ΠΈΠΊΠ» ΠΏΡΠΎΠ±Π΅Π³Π°Π΅Ρ ΡΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΡΠΎ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΡ onfocus Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ°Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ.
ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄, ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ. ΠΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π²Ρ Π±Ρ Π½ΠΈ Π²ΡΠ±ΡΠ°Π»ΠΈ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΡΠ²Π΅ΡΠΈΠ²Π°ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ΅.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°Π±ΡΠΈΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ (function factory), ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ :
Π‘ΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ
ΠΠ΅ Π½ΡΠΆΠ½ΠΎ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ Π½Π΅ Π½ΡΠΆΠ½Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠ°ΠΊ Π² ΡΠ°ΡΡΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ, ΡΠ°ΠΊ ΠΈ Π² ΡΠ°ΡΡΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π΅ΡΡΡ ΡΠΌΡΡΠ» ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° Π½Π΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°. ΠΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ, ΡΠΎ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π»Ρ Π½Π΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΡΠ²ΠΎΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΈΡ ΠΈΠ· ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ°.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΡΠΉ, Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ΅ΡΠΎΠ΄Ρ Π²ΡΠ½Π΅ΡΠ΅Π½Ρ Π² ΠΏΡΠΎΡΠΎΡΠΈΠΏ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΡΠΎΡΠΎΡΠΈΠΏ β ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ»ΠΎΡ ΠΎΠΉ ΠΏΡΠΈΠ²ΡΡΠΊΠΎΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ΅ΠΌ Π²ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π½ΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈΡΡ ΠΊ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ.
ΠΠΎΠ΄ Π²ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π°ΠΊΠΊΡΡΠ°ΡΠ½Π΅Π΅:
Π ΠΎΠ±ΠΎΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π²ΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· β Π² ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ΅. Π Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏ, Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΡ ΠΎΠ΄Π° Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ². Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π² ΡΡΠ°ΡΡΠ΅ ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ·Π½ΡΡΡΠΈ
ΠΠ°ΡΠ΅ΡΠΈΠ°Π» Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΡΡΠ°ΡΠ΅Π», ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΊΡΡΡ ΠΈΠ· ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΡΠ°.
ΠΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ https://learn.javascript.ru/closure.
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΈ, ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡΠΌΠΈ. ΠΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅
ΠΡ Π±ΡΠ΄Π΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ Β«Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅Β» ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Β«ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Β».
ΠΡΠΈΠΌΠ΅Ρ
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΡΠΊΠΈ Π΅Ρ ΠΊΠΎΠ΄Π°, Π½Π° ΡΡΠ°Π΄ΠΈΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ LexicalEnvironment ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΅Π³ΠΎ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ΄Π° ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ name ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ phrase :
Π ΠΊΠΎΠ½ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΠΈ ΠΏΠ°ΠΌΡΡΡ ΠΎΡΠΈΡΠ°Π΅ΡΡΡ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π²ΡΡΠ΅ ΡΠ°ΠΊ ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. Π§Π΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΠΈ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠΎΠ»Π΅Π΅ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ECMA-262, ΡΠ΅ΠΊΡΠΈΠΈ 10.2-10.5 ΠΈ 13.
ΠΠΎΡΡΡΠΏ ΠΊΠΎ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ
ΠΠ· ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ ΠΈ ΠΊ Π²Π½Π΅ΡΠ½Π΅ΠΉ:
ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΠ½ΠΎ Π²ΡΡΠ΄Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π° ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Ρ Π΅Ρ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊ ΠΌΠ΅ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π° Π² ΡΡΠ½ΠΊΡΠΈΠΈ β ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡΡΡ ΡΠ½Π°ΡΡΠΆΠΈ.
ΠΠΌΠ΅Π½Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠ΅ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ alert(userName) Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π²Π½Π΅ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ. ΠΠ° ΡΡΠΎΠ²Π½Π΅ ΠΊΠΎΠ΄Π° ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΠΏΠΎΠΈΡΠΊ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π²Π½Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠ΅Π³Π΄Π° ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π±Π΅ΡΡΡΡΡ Π²ΡΠ΅Π³Π΄Π° ΡΠ΅ΠΊΡΡΠ΅Π΅. ΠΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΆΠ΅ Π½Π΅ ΡΠΎ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠΎΠ΄Π΅ Π½ΠΈΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ sayHi Π±Π΅ΡΡΡ phrase ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ:
ΠΡΠΎ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π²Π΅Π΄Ρ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ [[Scope]] ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ Π²ΠΎ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ Π±Π΅ΡΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°ΠΌ Π΅ΡΡΡ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ.
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΠ½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π½ΠΎ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π²Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π»ΡΡΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄:
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ [[Scope]] ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅:
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π° Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΠΎ ΠΎΠ½Π° ΠΈΡΠ΅ΡΡΡ Π² Π΅ΡΡ Π±ΠΎΠ»Π΅Π΅ Π²Π½Π΅ΡΠ½Π΅ΠΌ (ΡΠ΅ΡΠ΅Π· [[Scope]] Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ), ΡΠΎ Π΅ΡΡΡ, ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ:
ΠΠΎΠ·Π²ΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ Β«ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉΒ» Π²Π°ΡΠΈΠ°Π½Ρ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Π½ΡΡΡΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄ΡΡΠ³Π°Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.
Π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΡΡΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΡΠΈΡΠΌ, ΡΡΠ½ΠΊΡΠΈΡ Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Π·Π½Π°ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ.
ΠΠ΄Π΅ΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ-ΡΡΡΡΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠΈΡΠ°Π΅Ρ ΡΠ²ΠΎΠΈ Π²ΡΠ·ΠΎΠ²Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ makeCounter ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ:
ΠΡΠ»ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π΅:
ΠΠ° ΡΡΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Β«ΡΡΡΡΡΠΈΠΊΠ°Β» Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΎ.
ΠΠΎΠ·Π²ΡΠ°ΡΡΠ½Π½Π°Ρ ΠΈΠ· makeCounter() ΡΡΠ½ΠΊΡΠΈΡ counter ΠΏΠΎΠΌΠ½ΠΈΡ (ΡΠ΅ΡΠ΅Π· [[Scope]] ) ΠΎ ΡΠΎΠΌ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π°.
ΠΡΠΎ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΡΡΡΠΈΠΊΠ°.
ΠΠ°Π»Π΅Π΅, ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ, ΡΡΠ½ΠΊΡΠΈΡ counter Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½Π°. ΠΡ Π½Π΅ Π·Π½Π°Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ, Π½ΠΎ, Π²ΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΠ°ΠΊΡ.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ°ΡΡ, Π½ΠΎ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΡΡΠΈΠΊΠΎΠ². ΠΡΠ΅ ΠΎΠ½ΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡ:
Π‘Π²ΠΎΠΉΡΡΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ
Π€ΡΠ½ΠΊΡΠΈΡ Π² JavaScript ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΡΡΠΌΠΎ ΠΊ Π½Π΅ΠΉ, Π²ΠΎΡ ΡΠ°ΠΊ:
Π‘Π²ΠΎΠΉΡΡΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΡΡΠΎΠΈΡ ΠΏΡΡΠ°ΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. ΠΠ½ΠΈ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Ρ. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ½ΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΎ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Β«ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈΒ».
Π ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Ρ ΡΡΠ½ΠΊΡΠΈΠΈ β Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΎΡΠΎΠ²ΡΡΠ΄Ρ ΠΈ Π²ΡΠ΅Π³Π΄Π°. ΠΡΠΎ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Β«ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Β».
ΠΡΠ»ΠΈ Ρ ΠΎΡΠ΅ΡΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎ ΡΡΡΡΡΠΈΠΊΠΎΠΌ:
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅.
ΠΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½Π°Ρ ΡΠ°Π·Π½ΠΈΡΠ° β Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠ΅ ΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ β ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎ, ΠΊ Π½Π΅ΠΌΡ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ Π»ΡΠ±ΠΎΠΉ, Ρ ΠΊΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΡΡΡΡΡΠΈΠΊ ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°:
ΠΠ½ΠΎΠ³Π΄Π° ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈΒ».
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. Π JavaScript Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ Π°Π½Π°Π»ΠΎΠ³ β ΡΠ°ΠΊΠΎΠ΅ Π²ΠΎΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠΎΠ³ΠΎ: Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ½Ρ.
Π’Π°ΠΊΠΎΠ²ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΅ΡΡΡ Π² Wikipedia ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ΅ΡΡΡΠ·Π½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π’ΠΎ Π΅ΡΡΡ, Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ + Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² JavaScript Π΅ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ.
ΠΠ±ΡΡΠ½ΠΎ, Π³ΠΎΠ²ΠΎΡΡ Β«Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈΒ», ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ Π½Π΅ ΡΠ°ΠΌΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.
ΠΠ½ΠΎΠ³Π΄Π° Π³ΠΎΠ²ΠΎΡΡΡ Β«ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π±Π΅ΡΡΡΡΡ ΠΈΠ· Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡΒ». ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ β ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .
ΠΠ½ΠΎΠ³Π΄Π° Π³ΠΎΠ²ΠΎΡΡΡ Β«ΠΠ°ΡΡ ΠΌΠΎΠ»ΠΎΠ΄Π΅Ρ, ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ!Β». Π§ΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ β Β«ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡΒ», ΠΊΠ°ΠΊΠΎΠΉ ΡΠΌΡΡΠ» ΠΎΠ±ΡΡΠ½ΠΎ Π²ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π² ΡΡΠΈ ΡΠ»ΠΎΠ²Π°?
Β«ΠΠΎΠ½ΠΈΠΌΠ°ΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡΒ» Π² JavaScript ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²Π΅ΡΠΈ:
Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π³Π»Π°Π²Π°Ρ ΠΌΡ ΡΠ³Π»ΡΠ±ΠΈΠΌ ΡΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ ΠΏΠ°ΠΌΡΡΡΡ.
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ Π² JavaScript
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ JavaScript, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ°ΠΊ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΈ Π½Π΅ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ, ΡΡΠΎ ΠΆΠ΅ ΡΡΠΎ Π·Π° ΡΡΠ΄Π½Π°Ρ ΡΡΡΠΊΠ° ΡΠ°ΠΊΠ°Ρ β Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ, ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ½Π° Π½ΡΠΆΠ½Π° β ΡΡΠ° ΡΡΠ°ΡΡΡ Π΄Π»Ρ Π²Π°Ρ.
ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π² JavaScript ΠΎΠ±Π»Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ (ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌΡΡ ΡΠ»ΠΎΠ²ΠΎΠΌ var) ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ.
ΠΡΠ»ΠΈ Π²Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Π²Π½ΡΡΡΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠ΅ΡΠ²Π°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ:
function outerFn(myArg) <
var myVar;
function innerFn() <
//ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ myVar ΠΈ myArg
>
>
ΠΡΠΈ ΡΡΠΎΠΌ, ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈ ΠΎΡΡΠ°ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Π½Π΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ, Π±ΡΠ»Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½Π°.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ β ΡΡΠ½ΠΊΡΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΊΠΎΠ»-Π²ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ²:
function createCounter() <
var numberOfCalls = 0;
return function () <
return ++numberOfCalls;
>
>
var fn = createCounter();
fn(); //1
fn(); //2
fn(); //3
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠ°Ρ createCounter, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ numberOfCalls, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π½ΡΠΆΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΅Π΅ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ (Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠ°Π·Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡΡ ΡΠ²ΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ createCounter).
ΠΠΌΠ΅Π½Π½ΠΎ Π·Π° ΡΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ°ΠΊΠΈΠ΅ Β«Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅Β» ΡΡΠ½ΠΊΡΠΈΠΈ Π² JavaScript Π½Π°Π·ΡΠ²Π°ΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡΠΌΠΈ (ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠΌ, ΠΏΡΠΈΡΠ΅Π΄ΡΠΈΠΌ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ) β ΠΎΠ½ΠΈ Β«Π·Π°ΠΌΡΠΊΠ°ΡΡΒ» Π½Π° ΡΠ΅Π±Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ.
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ
var fn = ( function () <
var numberOfCalls = 0;
return function () <
return ++ numberOfCalls;
>
>)();
Π’Π°ΠΊΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π½Π°ΠΌ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎΡ ΡΠ°Π½ΡΡΡΠΈΠ΅ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΅Π΅ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ β ΡΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½ΠΈΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΡΠ²ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΡΡΠ³ΠΎΠ΅ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ β ΡΠΎ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π·Π²Π°Π»ΠΈ Π±Ρ ΠΏΡΠΈΡΠΌΠΎΠΌ Ρ.Π½. ΠΌΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
var createHelloFunction = function (name) <
return function () <
alert( ‘Hello, ‘ + name);
>
>
var sayHelloHabrahabr = createHelloFunction( ‘Habrahabr’ );
sayHelloHabrahabr(); //alerts Β«Hello, HabrahabrΒ»
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Β«Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΒ» ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡΡΠ΅ΠΉ, ΡΡΠΎ Π½Π°ΠΌ ΠΈ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° Π²Π΅ΡΠ΅ΠΉ.
ΠΠΎΡ ΠΎΠΆΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ, Π° Π²Π΅ΡΠ°Π΅ΠΌ Π½Π° ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ β ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ±ΡΡΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ ΠΎΠΏΡΡΡ ΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π΄Π°Π½Π½ΡΠ΅.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β ΠΌΠ΅ΡΠΎΠ΄, ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΡ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ (Ρ.Π΅. ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π² Π½Π΅ΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ»ΠΎΠ²ΠΎ this).
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΠΎΡΠ²ΡΠ°ΡΠ°Π΅ΠΌΠ°Ρ bind’ΠΎΠΌ, Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π² ΡΠ΅Π±Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌΡΠΉ Π΅ΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ.
Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅, ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ ΠΈΠ½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ β Π·Π°ΡΠΈΡΠ° Π΄Π°Π½Π½ΡΡ (ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ). Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ:
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π²Π½ΡΡΡΠΈ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ Π²Π½Π΅ΡΠ½ΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΊΡΡΠΆΠ°ΡΡ ΡΠ°ΡΡΠΈ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ Ρ ΡΠ΅Π»ΡΡ Π·Π°ΠΊΡΡΡΡ ΠΏΠΎΠΏΠ°Π²ΡΠΈΠ΅ Π²Π½ΡΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° ΡΠ½Π°ΡΡΠΆΠΈ. (ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ jQuery, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΊΡΡΠΆΠ°Π΅Ρ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π·Π° Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Ρ Π½ΡΠΆΠ½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅).
ΠΡΡΡ, ΠΏΡΠ°Π²Π΄Π°, ΠΎΠ΄Π½Π° ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π»ΠΎΠ²ΡΡΠΊΠ° β Π²Π½ΡΡΡΠΈ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΡΠ΅ΡΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π° this Π·Π° Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ. Π Π΅ΡΠ°Π΅ΡΡΡ ΠΎΠ½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΡΠΌ ΠΈΠ· ΡΠΎΠΉ ΠΆΠ΅ ΡΠ΅ΡΠΈΠΈ. ΠΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Yahoo UI, Π½Π°Π·Π²Π°Π² Π΅Π³ΠΎ Β«Module PatternΒ» ΠΈ Π½Π°ΠΏΠΈΡΠ°Π² ΠΎ Π½ΡΠΌ ΡΠ΅Π»ΡΡ ΡΡΠ°ΡΡΡ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ Π±Π»ΠΎΠ³Π΅.
ΠΡΡΠΊΠ°ΠΉ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ (ΡΠΈΠ½Π³Π»ΡΠΎΠ½), ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
var MyModule = ( function () <
var name = ‘Habrahabr’ ;
function sayPreved() <
alert( ‘PREVED ‘ + name.toUpperCase());
>
return <
sayPrevedToHabrahabr: function () <
sayPreved(name);
>
>
>)();
MyModule.sayPrevedToHabrahabr(); //alerts Β«PREVED HabrahabrΒ»
ΠΠ°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ Ρ ΠΎΡΡ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ Π²Π³ΠΎΠ½ΡΠ΅Ρ Π² ΡΡΡΠΏΠΎΡ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅Π·Π½Π°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ.
ΠΡΡΠΊΠ°ΠΉ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠ»ΠΎΠΊ, ΠΈ Π½Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° β ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠ»ΡΡ Π°Π»Π΅ΡΡΠΎΠΌ Π΅Π΅ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ. ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π² Π³ΠΎΠ»ΠΎΠ²Ρ, Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΠ° Π΄Π΅Π»Π΅ ΠΆΠ΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° Π»ΡΠ±ΡΡ ΡΡΡΠ»ΠΊΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΡΠΈΡΠ»ΠΎ β Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ links.length. ΠΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ? Π ΡΠ²ΡΠ·ΠΈ Ρ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½Π°Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ i ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ, ΠΏΡΠΈ ΡΡΠΌ ΠΈ Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊ ΡΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΈΠΊΠ» ΡΠΆΠ΅ ΠΏΡΠΎΡΡΠ», i ΠΎΡΡΠ°ΡΡΡΡ ΡΠ°Π²Π½ΡΠΌ ΠΊΠΎΠ»-Π²Ρ ΡΡΡΠ»ΠΎΠΊ β ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΡ ΠΈ Π²ΠΈΠ΄ΠΈΠΌ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ°Ρ .
Π Π΅ΡΠ°Π΅ΡΡΡ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ΄Π΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΠΌΡ Β«Π·Π°ΡΠ΅Π½ΡΠ΅ΠΌΒ» ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ i, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π΅Π΅ ΠΊΠΎΠΏΠΈΡ Π² Π΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ ΡΠΈΠΊΠ»Π°. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ Π²ΡΡ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΠΎΡΡ.
ΠΠΎΡ ΠΈ Π²ΡΡ. ΠΡΠ° ΡΡΠ°ΡΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΠ΅Ρ Π½Π° Π·Π²Π°Π½ΠΈΠ΅ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ΅ΠΉ, Π½ΠΎ ΠΊΠΎΠΌΡ-Π½ΠΈΠ±ΡΠ΄Ρ, Π½Π°Π΄Π΅ΡΡΡ, Π²ΡΡ-ΡΠ°ΠΊΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ Π² JavaScript
ΠΡΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ ΠΡΠΈΡΡΠΈ ΠΠ°ΡΡΠΈΡΠΈΠ΄ΠΈ Β«Letβs Learn JavaScript ClosuresΒ».
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ Π² JavaScript, ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ²Π°ΠΆΠ°ΡΡΠΈΠΉ ΡΠ΅Π±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°ΡΡ.
Π ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠΉ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ, Π½ΠΎ ΠΌΠ°Π»ΠΎ ΠΊΡΠΎ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΈΠ΅.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΡΠ°Π±ΠΎΡΡ ΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠ°, Π΄Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΠΎΡΡΠΈ Π² ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎΡ ΠΏΠΎΡΡ ΠΏΠΎΡΠ²ΡΡΡΠ½ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ: ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ.
ΠΠ°Π΄Π΅ΡΡΡ, ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π»ΡΡΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Ρ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½ΡΠΌ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ?
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΠΌΠΎΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π² JavaScript ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ MDN:
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΡΠ»Π°ΡΡΠΈΠ΅ΡΡ Π½Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ (ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅) ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½Π°Ρ Π² Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΈ, Β«Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΒ» ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½Π° Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π°.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°: cΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ β ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²:
ΠΡΠΈΠΌΠ΅Ρ 1
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ numberGenerator ΡΠΎΠ·Π΄Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Β«ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡΒ» ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ num (ΡΠΈΡΠ»ΠΎ) ΠΈ checkNumber (ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΈΡΠ»ΠΎ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ). Π€ΡΠ½ΠΊΡΠΈΡ checkNumber Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π²Π½ΡΡΡΠΈ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, numberGenerator. ΠΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½Π°Ρ Π² numberGenerator ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ num Π±ΡΠ΄Π΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²ΡΠ²Π΅Π΄Π΅Π½Π° Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ, Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ numberGenerator Π²Π΅ΡΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ 2
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π² ΡΠ΅Π±Π΅ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Π²Π½ΡΡΡΠΈ Π²Π½Π΅ΡΠ½Π΅ΠΉ Π·Π°ΠΌΠΊΠ½ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ β enclosing function.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ hello ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡ ΡΠ°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ hello. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ hello Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΆΠ΅ Π±ΡΠ»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ (scope), ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠ΄Π΅Π»Π°Π² Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π½Π° ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π°Π½ΠΎΠ½ΠΈΠΌΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°. ΠΠ΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡΠ΅ΡΡ, ΠΏΠΎΠ·ΠΆΠ΅ Ρ ΠΎΠ±ΡΡΡΠ½Ρ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Β«ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈΒ». Π ΠΏΠΎΠΊΠ° ΠΏΡΠΎΡΡΠΎ ΡΠΌΠΈΡΠΈΡΠ΅ΡΡ Ρ ΡΡΠΈΠΌ.
ΠΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ
ΠΠ°ΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ Π½Π°ΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° Π²ΡΡΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅. ΠΠ»Π°Π²Π½Π°Ρ ΠΌΡΡΠ»Ρ ΡΠ°ΠΊΠ°Ρ: ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² Π·Π°ΠΌΠΊΠ½ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΡ ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΡΠ½Π½ΡΠ΅. Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎ-ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΌΠΊΠ½ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΡ .
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ΄Π΅ΠΉ. ΠΡ Π·Π°ΠΉΠ΄ΡΠΌ ΠΈΠ·Π΄Π°Π»Π΅ΠΊΠ° ΠΈ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π²Π΅ΡΠ½ΡΠΌΡΡ ΠΊ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡΠΌ. ΠΠ°ΡΠ½ΡΠΌ Π½Π°Ρ ΠΏΡΡΡ Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ β execution context.
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ β ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ³ΠΎ JavaScript
ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΊΡΡΡ Β«JavaScript. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΒ» ΠΈ ΠΏΡΠΎΠΊΠ°ΡΠ°ΠΉΡΠ΅ ΡΠ²ΠΎΠΈ Π½Π°Π²ΡΠΊΠΈ. Π‘ΠΊΠΈΠ΄ΠΊΠ° β1000 β½ ΠΏΠΎ ΠΏΡΠΎΠΌΠΎΠΊΠΎΠ΄Ρ SKUCHNO.
ΠΠ°ΠΆΠ°ΡΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ β ΡΠΎΠ³Π»Π°ΡΠΈΠ΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ β ΡΡΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ECMAScript Π΄Π»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ β global context, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Π°Ρ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ, ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠ΅Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ (ΡΠ΅Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ). ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ JavaScript ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°. ΠΠ±ΡΡΠ½ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅ΠΊΠ° β stack. Π‘ΡΠ΅ΠΊ β ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ , Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅: LIFO β Β«ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΏΡΠΈΡΡΠ» β ΠΏΠ΅ΡΠ²ΡΠΌ Π²ΡΡΠ΅Π»Β». ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅, ΡΡΠΎ Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² ΡΡΠ΅ΠΊ, Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΎ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΈΠ· Π½Π΅Π³ΠΎ. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· Π²Π΅ΡΡ ΡΡΠΊΠΈ ΡΡΠ΅ΠΊΠ°. Π’Π΅ΠΊΡΡΠΈΠΉ ΠΈΠ»ΠΈ Β«Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉΡΡΒ» ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ β Π²ΡΠ΅Π³Π΄Π° Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΠ΅ΠΊΠ°. ΠΠ½ Π²ΡΡΠΊΠ°ΠΊΠΈΠ²Π°Π΅Ρ ΠΈΠ· ΡΡΠ΅ΠΊΠ°, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ Π²Π΅ΡΡ Π½Π΅ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠ΅ΠΊΠ° Π²Π·ΡΡΡ Π½Π° ΡΠ΅Π±Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΡΡΠΎ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ²ΠΎΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ. ΠΡΠ²Π°ΡΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ. ΠΡΠ΅ΡΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅ Π·Π°Π±ΡΠ°Π½ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π°Π²Π΅ΡΡ Π² ΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, Π³Π΄Π΅ ΠΎΠ½ Π±ΡΠ» ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½. Π Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΌΠ΅Π½ΡΠ½ Π΄ΡΡΠ³ΠΈΠΌ, ΠΈ ΡΡΠΎΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡΡ Π² ΡΡΠ΅ΠΊ, ΡΡΠ°Π² ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Π½ΠΈΠΆΠ΅:
ΠΠ°ΡΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° boop Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡΡΡ, ΠΎΠ½ ΡΠ΄Π°Π»ΠΈΡΡΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ°, ΠΈ bar ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ ΡΠ°Π±ΠΎΡΡ:
ΠΠΎΠ³Π΄Π° Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ΅Π»Π°Ρ ΠΊΡΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄ΡΡΠ³ΠΈΠΌ ΠΈ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΠΈΠ΅ΡΡ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ½ΠΎΠ²Π° Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠΈΠ΅ΡΡ, ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ². Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ECMAScript, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°. Π Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ:
ΠΠ΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π·Π²ΡΡΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠ· Π²ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ Π΄Π»Ρ Π½Π°Ρ, Π²Π΅Π΄Ρ ΠΎΠ½ΠΈ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΡΠ»ΠΊΠΈ ΠΊΠΎΠ΄Π° Π² ΡΡΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΡΠΌΠ°ΡΡ ΠΎ Β«ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°Ρ Β» ΠΊΠ°ΠΊ ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΡΠ° ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠ΅Π»Ρ ΡΠΎΡΡΠΎΡΠ»Π° Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΠΈΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ Β«ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΒ» Π±ΡΠ»Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π°, ΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΠΎΠΏΠ½ΡΡΡ Π΅ΡΡ Π³Π»ΡΠ±ΠΆΠ΅ Π² Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°: c ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ. ΠΠΎ Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΌΡ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Π΅Π³ΠΎ Π½Π° Β«ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅Β». ΠΠ»Ρ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠ°ΡΡΡ ΠΠΊΡΠ΅Π»Ρ Π Π°ΡΡΠΌΠ°ΠΉΠ΅ΡΠ°.
ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ
ΠΠ°Π΄ΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ β ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΉ ΡΠΈΠΏ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ ΠΊΠΎΠ΄Π° ECMAScript. ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π·Π°ΠΏΠΈΡΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π²Π½Π΅ΡΠ½Π΅Π΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅. ΠΠ±ΡΡΠ½ΠΎ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: FunctionDeclaration β ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, BlockStatement β ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π±Π»ΠΎΠΊΠ°, Catch clause β ΡΡΠ»ΠΎΠ²Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, TryStatement β ΠΏΠ΅ΡΠ΅Ρ Π²Π°Ρ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π½ΠΎΠ²ΡΠΌ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΎΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΡΠ°Π·Π±ΠΎΡΠ΅ ΠΊΠΎΠ΄Π°. β ECMAScript-262/6.0
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΡΠΌ ΡΡΠΎ.
Π’Π°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄Π΅:
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΎ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° Π½Π΅Π³ΠΎ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ. ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π° Π²ΡΡΡΠ΅ΠΌ ΡΡΠΎΠ²Π½Π΅, ΠΈΠ»ΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ, Π³Π΄Π΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π·Π° ΡΡΡΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ.
Π¦Π΅ΠΏΠΎΡΠΊΠΈ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ
ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠΎΡ Π½Π°Π±ΠΎΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ β scope. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π»ΠΎΠΆΠΈΡΡ ΠΈΡ Π² ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ:
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, bar Π²Π»ΠΎΠΆΠ΅Π½ Π² foo. Π§ΡΠΎΠ±Ρ Π²ΡΡ ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π½ΠΈΠΆΠ΅:
ΠΡ Π²Π΅ΡΠ½ΡΠΌΡΡ ΠΏΠΎΠ·ΠΆΠ΅ ΠΊ ΡΡΠΎΠΌΡ ΠΏΡΠΈΠΌΠ΅ΡΡ.
ΠΡΠ° ΡΠ΅ΠΏΠΎΡΠΊΠ° ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠ° ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΎΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ½ΠΎ ΠΏΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. ΠΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π±ΡΡΡΡΠ΅Π½ΡΠΊΠΎ ΡΠ°Π·Π±Π΅ΡΡΠΌ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ»ΠΈ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ.
ΠΠ΄ΡΠΌ Π² ΠΎΠ±Ρ ΠΎΠ΄: Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΡΠΈΠ² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ
Π£ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ΅ΠΊΠΎΠ²Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° β stack-based implementations, Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΡΡΠ΅ΠΊΠ΅. ΠΠΎΡΡΠΎΠΌΡ, Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΠΊΠ°, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠ°ΠΊΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π² Π²ΠΈΠ΄Ρ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ β ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈ ΡΠΈΠΊΡΠΈΡΡΡΡΡΡ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΡΡΠΊΡΡΡΠ° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π²Ρ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΠ΅ΡΡ.
ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π·Π°Π΄Π°Π²Π°ΡΡΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠΎΡ Π΄Π²Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΡΡΠΎ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ:
ΠΡΠΈΠΌΠ΅Ρ 1
ΠΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΡΡΠ΅, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ bar.
Π ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΠΎΠ·Π²ΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ bar Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ x. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ x ΠΈ ΠΊ 10, ΠΈ ΠΊ 15.
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄Π°ΡΡ Π½Π°ΠΌ ΡΡΠ΅ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ x, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π΅Ρ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±ΡΠ»Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ bar Π²ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅Ρ x = 2 Π½Π° Π²Π΅ΡΡ ΡΡΠΊΡ ΡΡΠ΅ΠΊΠ°, Π·Π°ΡΡΠ°Π²Π»ΡΡ foo Π²Π΅ΡΠ½ΡΡΡ 7.
ΠΡΠΈΠΌΠ΅Ρ 2
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΈ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ myVar ΡΠ΅ΡΠ°Π΅Ρ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ myVar Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Π³Π΄Π΅ Π±ΡΠ»Π° Π²ΡΠ·Π²Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ myVar ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΡΠΎΡ ΡΠ°Π½Π΅Π½Π° Π² ΡΠ°ΠΌΠΊΠ°Ρ Π΄Π²ΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠΈ ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ.
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ°ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄Π²ΡΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΡΡΡ. ΠΠ½Π° Π½Π΅ Π΄Π°ΡΡ ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π°.
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ Π²ΡΡ, ΠΎ ΡΡΠΌ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ, ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π½Π°ΡΠ΅ΠΉ ΡΠ΅ΠΌΡ, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈ Π²ΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ:
ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΌΡΡΠ» Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ. ΠΡΠ° ΡΡΡΠ»ΠΊΠ° Π΄Π΅Π»Π°Π΅Ρ Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π»ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ (ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ) Π²Π½Π΅ ΠΈΠ»ΠΈ Π²Π½ΡΡΡΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ.
ΠΠ°ΠΆΠ΅ΡΡΡ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Β«Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΒ» ΡΡΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠ»ΠΊΡ ΠΊ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ Π² ΡΡΠΎΠΉ ΡΡΠ΅Π΄Π΅.
ΠΠΎΠ·Π²ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ:
ΠΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° Π½Π°ΡΠ΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ Π² ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄Π΅:
ΠΠΎΠ³Π΄Π° ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ test, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ 45, ΠΈ ΠΎΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ bar (ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ foo Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ bar). bar ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ y Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ foo Π²Π΅ΡΠ½ΡΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ bar ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° y ΡΠ΅ΡΠ΅Π· Π΅Π³ΠΎ Π²Π½Π΅ΡΠ½Π΅Π΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ foo! bar ΡΠ°ΠΊ ΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ x ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ foo Π΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΠΏΠΎΠΈΡΠΊ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈΒ».
ΠΠΎΠ΄Π²Π΅Π΄ΡΠΌ ΠΈΡΠΎΠ³ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΡΠΈΠ² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ: Π΄Π»Ρ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠ±Π»Π°ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ°. ΠΡΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡ Π½Π°ΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. ΠΡΠΈΡΠΈΠ½Π° ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΊΡΠΎΠ΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ, Π° ΡΡΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΡ Π½Π°ΡΠ΅ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π·Π°ΠΌΠΊΠ½ΡΡΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ Β«ΠΊΡΡΠ΅Β», ΠΈ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ, Π΄Π΅Π»Π°Ρ ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°, ΡΠΎ Π΅ΡΡΡ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²Π°.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΠΈ Π½Π° Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΡ ΠΏΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²:
ΠΡΠΈΠΌΠ΅Ρ 1
ΠΠΎΡ ΡΠΈΠΏΠΈΡΠ½ΠΎΠ΅ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅: Π² ΡΠΈΠΊΠ»Π΅ for ΠΌΡ ΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ²ΡΠ·Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΡΡΡΠΈΠΊΠ° Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ.
ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ°Π½Π΅Π΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Ρ Π»ΡΠ³ΠΊΠΎΡΡΡΡ Π½Π°ΠΉΡΠΈ ΠΎΡΠΈΠ±ΠΊΡ Π·Π΄Π΅ΡΡ. ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π²ΠΎΡ ΡΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠΈΠΊΠ»Π° for:
ΠΡΠ»ΠΎ Π±Ρ Π½Π΅Π²Π΅ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ ΡΠ°ΠΊΡΡ, ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ/ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ°ΠΌΡΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠΎΡΡΠΎΠΌΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ i ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π° ΠΎΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΉ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ Π»ΡΠ±Π°Ρ ΠΈΠ· ΠΏΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΡΡΠ°ΡΡΠΈΡ ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ i, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 5, i ΡΠ°Π²Π½Π° 5, ΠΊΠΎΠ³Π΄Π° ΡΠΈΠΊΠ» Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ.
Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ β ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ Ρ Π½ΠΈΡ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ/ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.
Π£ΡΠ°, ΠΌΡ ΠΈΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΡΡΠΎ.
ΠΡΡΡ Π΅ΡΡ ΠΎΠ΄Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ let Π²ΠΌΠ΅ΡΡΠΎ var, let Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ Π±Π»ΠΎΠΊΠ° ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π½ΠΎΠ²Π°Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ Π² ΡΠΈΠΊΠ»Π΅ for.
ΠΡΠΈΠΌΠ΅Ρ 2
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠ·ΠΎΠ² Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅:
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠ·ΠΎΠ² Π² ΡΡΠ½ΠΊΡΠΈΠΈ iCantThinkOfAName ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ foo ΠΈ bar. ΠΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΌΠΊΠ½ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π·Π°ΠΌΠΊΠ½ΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ iCantThinkOfANameβs doSomething ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Π΅ΡΠ½ΡΠ»Π°ΡΡ iCantThinkOfAName.
ΠΡΠΈΠΌΠ΅Ρ 3
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ mysteriousCalculator Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΠ²ΠΎΡΡ ΠΈΠ½Π°ΡΠ΅, ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠΎΠ΄Π° Π²ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ add ΠΈ substract ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΡΠ΅Π΄Ρ mysteriousCalculator, ΠΈ ΠΎΠ½ΠΈ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠΎΠΉ ΡΡΠ΅Π΄Ρ Π΄Π»Ρ ΡΠ°ΡΡΡΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ 4
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ Π²Π°ΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ: Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΌΠΎΡΠ½Π°Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠ° β ΠΎΠ½Π° Π΄Π°ΡΡ Π·Π°ΠΌΡΠΊΠ°ΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ guessPassword ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ password, Π΄Π΅Π»Π°Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ password ΡΠ½Π°ΡΡΠΆΠΈ.
ΠΠ°ΠΌΡΠΊΠ°ΡΡΠ°Ρ ΡΠ΅ΠΌΠ°ΡΠΊΠ°
Π― Π½Π°Π΄Π΅ΡΡΡ ΡΡΠΎΡ ΠΏΠΎΡΡ Π±ΡΠ» ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΠΈ Π΄Π°Π» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² JavaScript. ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π΄Π΅Π»Π°ΡΡ ΠΈΡ ΠΏΠΎΠΈΡΠΊ ΠΏΡΠΎΡΠ΅. Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ Π±ΠΎΠ»ΠΈ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ°
ΠΠ»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ Ρ ΠΎΠΏΡΡΡΠΈΠ»Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ. ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ»ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ Ρ Ρ ΠΎΡΠ΅Π»Π° Π±Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ: