Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ js
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ Π² JavaScript Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ β ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ JavaScript, Π²ΡΠ·ΡΠ²Π°ΡΡΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ², Π·Π½Π°ΡΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΊΠ°ΠΆΠ΄ΡΠΉ JS-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ. Π₯ΠΎΡΠΎΡΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°Π²ΡΠΈΡΡ Ρ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡΠΌΠΈ, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ, ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΈ ΡΠΈΡΡΡΠΉ ΠΊΠΎΠ΄. Π ΡΡΠΎ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π±ΡΠ΄Π΅Ρ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΠΎΠ²Π°ΡΡ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌΡ ΡΠΎΡΡΡ.
ΠΠ°ΡΠ΅ΡΠΈΠ°Π», ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ ΡΠ΅Π³ΠΎΠ΄Π½Ρ, ΠΏΠΎΡΠ²ΡΡΡΠ½ ΡΠ°ΡΡΠΊΠ°Π·Ρ ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°Ρ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² JavaScript-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ .
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅?
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ Π½Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠ° Π²Π½Π΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π·Π°Π²Π΅ΡΡΠΈΠ»Π° ΡΠ°Π±ΠΎΡΡ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π² Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΈ ΠΌΠΎΠ³ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ Π΅ΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΊ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡΠΌ, ΡΠ°Π·Π±Π΅ΡΡΠΌΡΡ Ρ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌ Β«Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅Β».
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅?
ΠΠΎΠ½ΡΡΠΈΠ΅ Β«Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅Β» ΠΈΠ»ΠΈ Β«ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅Β» Π² JavaScript ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ΄Π΅ΡΡ Ρ ΡΡΠ½ΠΊΡΠΈΠΈ inner() Π΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΌ Π² Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ outer() ΠΈ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. Π€ΡΠ½ΠΊΡΠΈΡ outer() ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΌ Π² Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.
Π¦Π΅ΠΏΠΎΡΠΊΠ° ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ ΡΠΎΠ½ΠΊΠΎΡΡΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ².
βΠΡΠΈΠΌΠ΅Ρ β1
βΠΡΠΈΠΌΠ΅Ρ β2
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ?
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ, ΠΈ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°Ρ JavaScript, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΡ ΠΈΡ ΡΠ°Π±ΠΎΡΡ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π΄Π²ΡΠΌΡ Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌΠΈ JavaScript. ΠΡΠΎ β ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (Execution Context) ΠΈ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ (Lexical Environment).
βΠΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ β ΡΡΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ JavaScript-ΠΊΠΎΠ΄. ΠΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π½ΡΡΡΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π Π½Π΅ΠΊΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΊΠΎΠ΄ Π»ΠΈΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (JavaScript β ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ). Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Π²Π΅Π΄ΡΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² (Call Stack).
Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² β ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ , ΡΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ LIFO (Last In, First Out β ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ Π²ΠΎΡΡΠ», ΠΏΠ΅ΡΠ²ΡΠΌ Π²ΡΡΠ΅Π»). ΠΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π²Π΅ΡΡ Π½ΡΡ ΡΠ°ΡΡΡ ΡΡΠ΅ΠΊΠ°, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π½Π΅Ρ ΠΆΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΡΠΌΠ°ΡΡ.
Π’Π΅ΠΊΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ΅ΠΊΠ°, ΠΈ ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΠΊΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ, Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΡΠ΅ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΎΠ².
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ²:
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
βΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° JS-Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΎΠ½ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Π½ΠΎΠ²ΠΎΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌΡΡ Π² ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠ°Ρ Ρ ΡΠ°Π½ΠΈΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠ΄Π΅ΡΡ Β«ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΒ» β ΡΡΠΎ ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Β«ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°ΡΒ» β ΡΡΠΎ ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ (ΡΡΠ΄Π° Π²Ρ ΠΎΠ΄ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ) ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
ΠΠ·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°:
ΠΠΎΠ³Π΄Π° JS-Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΎΠ½ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Π½ΠΎΠ²ΠΎΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π·Π°Π²Π΅ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΡ, Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ², Π½ΠΎ Π΅Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΎ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ, Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈ ΠΎΡΡΠ°ΡΡΡΡ ΡΠ°ΠΌ. ΠΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π»ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΄Π°Π½Π½ΠΎΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠ»ΠΎΠΊ Π½Π° Π²Π½Π΅ΡΠ½Π΅Π΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΡΠ°Π·Π±ΠΎΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΡΠ°Π±ΠΎΡΡ Ρ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡΠΌΠΈ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π²ΠΎΠΎΡΡΠΆΠΈΠ»ΠΈΡΡ Π·Π½Π°Π½ΠΈΡΠΌΠΈ ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΎ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ, Π²Π΅ΡΠ½ΡΠΌΡΡ ΠΊ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡΠΌ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡΠ±ΠΎΠΊΠΎ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΠ΅ ΠΆΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠΆΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ.
βΠΡΠΈΠΌΠ΅Ρ β1
ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°:
ΠΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ peter() (ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ ΡΠ°Π½ΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ displayName() ), JS-Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ Π½ΠΎΠ²ΠΎΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΎ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
Π ΡΡΠ½ΠΊΡΠΈΠΈ displayName() Π½Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΏΠΎΡΡΠΎΠΌΡ Π΅Ρ Π·Π°ΠΏΠΈΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΡΡΠΎΠΉ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ JS-Π΄Π²ΠΈΠΆΠΎΠΊ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ name Π² Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
βΠΡΠΈΠΌΠ΅Ρ β2
ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ getCounter() Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ counter Π² Π΅Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΎΠΏΡΡΡ ΠΆΠ΅, Π·Π°ΠΏΠΈΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΡΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ getCounter() ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ count() Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΡΠΎΠ³ΠΈ
Π ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ, ΠΈ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈ Π³Π»ΡΠ±ΠΈΠ½Π½ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ JavaScript, Π»Π΅ΠΆΠ°ΡΠΈΠ΅ Π² ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π΅. ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ β ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ JavaScript, Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ JS-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ. ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ β ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΡΡΠΏΠ΅Π½Π΅ΠΉ ΠΏΡΡΠΈ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ! ΠΡΠ»ΠΈ Π²Ρ ΠΎΠ±Π»Π°Π΄Π°Π΅ΡΠ΅ ΠΎΠΏΡΡΠΎΠΌ JS-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ β ΠΏΡΠΎΡΠΈΠΌ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ.
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΠ΅
JavaScript β ΡΠ·ΡΠΊ Ρ ΡΠΈΠ»ΡΠ½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΊΠ»ΠΎΠ½ΠΎΠΌ. ΠΠ½ Π΄Π°ΡΡ Π½Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Ρ. Π€ΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π½Π°, ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π° Π² Π΄ΡΡΠ³ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π° ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠΎΠ·ΠΆΠ΅ Π²ΡΠ·Π²Π°Π½Π° ΠΈΠ· ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°.
ΠΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΡΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ.
ΠΠΎ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡ? Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ?
Π ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡΡ Π² Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² ΠΊΠΎΠ΄Π΅ ΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½Π° ΠΎΡΡΡΠ΄Π° β ΠΏΠΎΠ»ΡΡΠΈΡ Π»ΠΈ ΠΎΠ½Π° Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΡΠ²ΠΎΠ΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ?
Π Π°Π·Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ Π² ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΈ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ JavaScript.
ΠΠ°ΡΠ° Π²ΠΎΠΏΡΠΎΡΠΎΠ²
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΠ·ΡΡΠΈΠΌ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠ°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²Ρ ΡΠΌΠΎΠ³Π»ΠΈ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΡΠΈ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
Π’Π°ΠΊΠΈΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Ρ ΠΈ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΠΎΠΉ ΠΈ Π² ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅, ΡΠ΅ΠΌ ΠΎΠ½Π° Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°.
ΠΡΠ°ΠΊ, Π²ΠΎΠΏΡΠΎΡ Π² ΡΠΎΠΌ, ΠΏΠΎΠ»ΡΡΠΈΡ Π»ΠΈ ΠΎΠ½Π° Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ?
Π€ΡΠ½ΠΊΡΠΈΡ makeWorker ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΡΡΠ³ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΅Ρ. ΠΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Π° ΠΎΡΠΊΡΠ΄Π°-ΡΠΎ Π΅ΡΡ. ΠΠΎΠ»ΡΡΠΈΡ Π»ΠΈ ΠΎΠ½Π° Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈΠ· ΠΌΠ΅ΡΡΠ° ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ· ΠΎΠ±ΠΎΠΈΡ ?
ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΠ±ΡΡΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Β«ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°ΡΒ» Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅.
ΠΠ±ΡΠ΅ΠΊΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ:
Environment Record β ΠΎΠ±ΡΠ΅ΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Π° Ρ ΡΠ°Π½ΡΡΡΡ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ (Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΡΡΠ³Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠ°ΠΊΠ°Ρ ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ this ).
Π‘ΡΡΠ»ΠΊΠ° Π½Π° Π²Π½Π΅ΡΠ½Π΅Π΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ β ΡΠΎ Π΅ΡΡΡ ΡΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΠ΄Ρ ΡΠ½Π°ΡΡΠΆΠΈ (ΡΠ½Π°ΡΡΠΆΠΈ ΠΎΡ ΡΠ΅ΠΊΡΡΠΈΡ ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ).
«ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ» β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°: Environment Record. Β«ΠΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡΒ», ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, Β«ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Β».
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΠΎΠΌ ΠΏΡΠΎΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅:
ΠΡΠΎ, ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅, Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡΠΎΠΌ.
Π Π²ΠΎΡ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ:
ΠΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ Ρ ΠΏΡΠ°Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡ, ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°:
ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΎΡΡΠΎ, ΠΏΡΠ°Π²Π΄Π°?
Function Declaration
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Function Declaration.
ΠΠ»Ρ Π²Π΅ΡΡ Π½Π΅ΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΡΠΊΡΠΈΠΏΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· Function Declaration, Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°.
ΠΠ½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΠΈ Π²Π½Π΅ΡΠ½Π΅Π΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π½Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π²ΡΠ·ΠΎΠ²Π°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ say(«John») ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ (Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΡΡΠΎΠΊΠ΅, ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΎΠΉ):
ΠΡΠ°ΠΊ, Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄Π²Π° Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ: Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ (Π΄Π»Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ) ΠΈ Π²Π½Π΅ΡΠ½Π΅Π΅ (Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅):
ΠΠ½Π΅ΡΠ½Π΅Π΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅.
Π Π½ΡΠΌ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ phrase ΠΈ ΡΠ°ΠΌΠ° ΡΡΠ½ΠΊΡΠΈΡ.
Π£ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° outer Π½Π° Π²Π½Π΅ΡΠ½Π΅Π΅.
ΠΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Ρ ΠΎΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ β ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠΈΡΠΊ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ, Π·Π°ΡΠ΅ΠΌ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ, Π·Π°ΡΠ΅ΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅, Π΄ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠΈΡΠΊ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΎΡΠ²Π΅Ρ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΠΎΠΏΡΠΎΡ ΠΈΠ· Π½Π°ΡΠ°Π»Π° Π³Π»Π°Π²Ρ.
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΠΎ Π΅ΡΡΡ, ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
Π‘ΡΠ°ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ. ΠΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΎΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΎΠ½Π° Π±Π΅ΡΡΡ Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΈΠ»ΠΈ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
Π’Π°ΠΊ ΡΡΠΎ, ΠΎΡΠ²Π΅Ρ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΠΎΠΏΡΠΎΡ: Pete :
ΠΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅:
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½ΠΎΠ²ΠΎΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ.
Π, Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, ΡΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π±ΡΠ΄Π΅Ρ ΡΠ²ΠΎΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΌΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ.
Β«ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅Β» β ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ. Π‘Π°ΠΌ Π΄Π²ΠΈΠΆΠΎΠΊ JavaScript ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²ΠΊΠΈ, Π½ΠΎ Π²ΠΈΠ΄ΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ ΡΠ°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ.
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
Π€ΡΠ½ΠΊΡΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉΒ», ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π²Π½ΡΡΡΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π² JavaScript.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π΄Π»Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ Π·Π΄Π΅ΡΡ:
ΠΠ΄Π΅ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ getFullName() ΡΠΎΠ·Π΄Π°Π½Π° Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°. ΠΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈ, Π·Π½Π°ΡΠΈΡ, Π²ΡΠ²Π΅ΡΡΠΈ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ. Π JavaScript Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ.
Π§ΡΠΎ Π΅ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅, Π²Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π°: Π»ΠΈΠ±ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (Π΅ΡΠ»ΠΈ Π²Π½Π΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ), Π»ΠΈΠ±ΠΎ ΡΠ°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅. Π Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. ΠΠ΅ Π²Π°ΠΆΠ½ΠΎ Π³Π΄Π΅, ΠΎΠ½Π° Π²ΡΡ ΡΠ°ΠΊ ΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΠΌ ΠΆΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π΄Π΅ΡΡ, Π²Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π½ΠΎΠ²ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅:
Π Π·Π΄Π΅ΡΡ ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ Β«ΡΡΡΡΡΠΈΠΊΒ»:
ΠΠ°ΠΊ ΠΆΠ΅ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ·Π½ΡΡΡΠΈ?
ΠΠΎΠ³Π΄Π° Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ count++ ΠΈΠ·Π½ΡΡΡΠΈ-Π½Π°ΡΡΠΆΡ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΡΡΠ΅ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠΉ:
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π° Π²ΠΎΠΏΡΠΎΡΠ°:
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΡΠ΅Π½ΠΈΠ΅.
Π₯ΠΎΡΠΎΡΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΡΠ²Π΅ΡΠΈΠΌ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΠΈΡΡΠ°ΡΠΈΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠ½Π°. ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠΈΡΡΠ°ΡΠΈΠΉ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, Π½ΠΎ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΅ΡΡΡ ΡΡΠ΄ Π΄Π΅ΡΠ°Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ, Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΡΡ, ΠΎΠΏΡΡΡΠΈΠ»ΠΈ. ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΡΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π΅ Π΅ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ.
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄Π΅ΡΠ°Π»ΡΡ
ΠΠΎΡ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ makeCounter ΡΠ°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ. ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΈΡ , ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄Π΅ΡΠ°Π»ΡΡ.
ΠΠΎΠ³Π΄Π° ΡΠΊΡΠΈΠΏΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅:
ΠΡ Π΅ΡΡ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎΠ± ΡΡΠΎΠΌ, ΡΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π½Π°ΡΡ, Π³Π΄Π΅ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, makeCounter ΡΠΎΠ·Π΄Π°Π½ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ, ΡΠ°ΠΊ ΡΡΠΎ [[Environment]] ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° Π½Π΅Π³ΠΎ.
ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠ½ΠΊΡΠΈΡ Π½Π°Π²ΡΠ΅Π³Π΄Π° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, Π³Π΄Π΅ ΠΎΠ½Π° Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π°. Π [[Environment]] β ΡΠΊΡΡΡΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡ ΡΡΡΠ»ΠΊΡ.
Π ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ·ΠΎΠ²Π° makeCounter() ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ°ΠΊ ΠΈ Π²ΡΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΠΎΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π²Π΅ Π²Π΅ΡΠΈ:
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ makeCounter() ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠ»Ρ Π½Π°ΡΠ΅ΠΉ Π½ΠΎΠ²ΠΎΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ [[Environment]] Π±ΡΠ΄Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ makeCounter() (Π³Π΄Π΅ ΠΎΠ½Π° Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π°):
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½Π° ΡΡΠΎΠΌ ΡΠ°Π³Π΅ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π°, Π½ΠΎ Π΅ΡΡ Π½Π΅ Π²ΡΠ·Π²Π°Π½Π°. ΠΠΎΠ΄ Π²Π½ΡΡΡΠΈ function() < return count++ >Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ.
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ, Π²ΡΠ·ΠΎΠ² makeCounter() Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ (Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ) ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ counter :
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π², ΠΎΠ±ΡΠ΅ΠΊΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΏΠΎΠΊΠ° Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. Π ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΈΡ Π½Π΅ ΠΎΡΡΠ°ΡΡΡΡ, ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅ΡΡΡ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ counter() ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΠ²Π΅Ρ Π½Π° Π²ΡΠΎΡΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ ΠΈΠ· Π½Π°ΡΠ°Π»Π° Π³Π»Π°Π²Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½.
Π€ΡΠ½ΠΊΡΠΈΡ work() Π² ΠΊΠΎΠ΄Π΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ name ΠΈΠ· ΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, Π³Π΄Π΅ Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π°, ΡΠ΅ΡΠ΅Π· ΡΡΡΠ»ΠΊΡ Π½Π° Π²Π½Π΅ΡΠ½Π΅Π΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅:
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π΅ΡΡΡ ΠΎΠ±ΡΠΈΠΉ ΡΠ΅ΡΠΌΠΈΠ½: Β«Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅Β», β ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ.
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΡΠ²ΠΎΠΈ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊ Π½ΠΈΠΌ Π΄ΠΎΡΡΡΠΏ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ·ΡΠΊΠ°Ρ ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅. ΠΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅, Π² JavaScript, Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ²Π»ΡΡΡΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡΠΌΠΈ (Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΎ ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ Π² Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ «new Function»).
Π’ΠΎ Π΅ΡΡΡ, ΠΎΠ½ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ, Π³Π΄Π΅ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° [[Environment]] ΠΈ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ.
ΠΠΎΠ³Π΄Π° Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ: Β«ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅?Β», β ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΠΎΡΠ²Π΅ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ°, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² JavaScript ΡΠ²Π»ΡΡΡΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡΠΌΠΈ, ΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠ² ΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π΅ΡΠ°Π»ΡΡ : ΡΠ²ΠΎΠΉΡΡΠ²Π΅ [[Environment]] ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈ ΡΠΈΠΊΠ»Ρ, IIFE
ΠΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡ . ΠΠΎ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π»Ρ Π»ΡΠ±ΡΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π° <. >.
ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. ΠΠΎΡ ΠΏΠ°ΡΠ° ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ².
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ user ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² Π±Π»ΠΎΠΊΠ΅ if :
For, while
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: let i Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠ½Π°ΡΡΠΆΠΈ <. >. ΠΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ for β ΠΎΡΠΎΠ±Π΅Π½Π½Π°Ρ Π² ΡΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅, Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π° ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ i Π² Π½ΡΠΌ.
ΠΠ»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Β«ΠΏΡΠΎΡΡΡΠ΅Β» Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° <. >, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² Β«Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈΒ».
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Π²ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ (ΠΊΡΠΎΠΌΠ΅ type=»module» ) ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΠΎΠ΄Π½Ρ ΠΎΠ±ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ. Π’Π°ΠΊ ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠΊΡΠΈΠΏΡΠ΅, ΠΎΠ½Π° ΡΡΠ°Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ . ΠΠΎ ΡΡΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ², Π΅ΡΠ»ΠΈ Π΄Π²Π° ΡΠΊΡΠΈΠΏΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ, Π΅ΡΠ»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ β ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ, Π° Π°Π²ΡΠΎΡΡ ΡΠΊΡΠΈΠΏΡΠ° Π½Π΅ Π·Π½Π°ΡΡ Π΄ΡΡΠ³ ΠΎ Π΄ΡΡΠ³Π΅.
ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΡΠΎΠ³ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ Π²ΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈ:
ΠΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ Π±Π»ΠΎΠΊΠ° Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΄ ΡΠ½Π°ΡΡΠΆΠΈ Π½Π΅Π³ΠΎ (ΠΈΠ»ΠΈ Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΠΊΡΠΈΠΏΡΠ΅) Π½Π΅ Π²ΠΈΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°.
Π ΠΏΡΠΎΡΠ»ΠΎΠΌ Π² JavaScript Π½Π΅ Π±ΡΠ»ΠΎ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°.
Π’Π°ΠΊ ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ. Π ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ΄Π΅Π»Π°Π»ΠΈ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«immediately-invoked function expressionsΒ» (Π°Π±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΠ° IIFE), ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ.
ΠΡΠΎ Π½Π΅ ΡΠΎ, ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ, Π½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΡΠ΅ΡΠΈΡΡ ΡΡΠΎ Π² ΡΡΠ°ΡΡΡ ΡΠΊΡΠΈΠΏΡΠ°Ρ , ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ.
ΠΠ΄Π΅ΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Function Expression. Π’Π°ΠΊ ΡΡΠΎ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΈ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠΊΠ°ΠΆΠ΅ΠΌ: Β«Ρ ΠΎΡΠΎΡΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠΌΡΒ», β ΡΡΠΎ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ JavaScript Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ Function Declaration Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ.
Π’Π°ΠΊ ΡΡΠΎ, ΡΠΊΠΎΠ±ΠΊΠΈ Π²ΠΎΠΊΡΡΠ³ ΡΡΠ½ΠΊΡΠΈΠΈ β ΡΡΠΎ ΡΡΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ JavaScript, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅: Π΅ΠΉ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΡ ΠΈ Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ.
ΠΡΠΎΠΌΠ΅ ΡΠΊΠΎΠ±ΠΎΠΊ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΡΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ JavaScript, ΡΡΠΎ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π² Π²ΠΈΠ΄Ρ Function Expression:
ΠΠΎ Π²ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΡ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ Function Expression ΠΈ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π΅Π³ΠΎ. ΠΡΡ ΡΠ°Π· Π·Π°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΊΠΎΠ΄.
Π‘Π±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ°
ΠΠ±ΡΡΠ½ΠΎ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠΈΡΠ°Π΅ΡΡΡ ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ΄Π΅ΡΡ Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. ΠΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ f() Π·Π°Π²Π΅ΡΡΠΈΡΡΡ, ΡΡΠΎ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π΅Ρ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ f() Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ, ΡΠΎΠ³Π΄Π° Π²ΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ Π΄Π΅ΡΠΆΠ°ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΡ ΡΡΠΈ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅ Π½ΠΈΠΆΠ΅:
ΠΠ±ΡΠ΅ΠΊΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΡΠΌΠΈΡΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ (ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ). ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΎΠ½ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎ ΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΏΠΎΠΊΠ° Π΅ΡΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½Π° Π²Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° Π½Π΅Π³ΠΎ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ g ΡΡΠ°Π½Π΅Ρ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ, Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, value ) Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΎ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ;
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
ΠΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ, Π² ΡΠ΅ΠΎΡΠΈΠΈ, ΠΏΠΎΠΊΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΆΠΈΠ²Π°, Π²ΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΎΠΆΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ.
ΠΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π΄Π²ΠΈΠΆΠΊΠΈ JavaScript ΠΏΡΡΠ°ΡΡΡΡ ΡΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ½ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ, Π΅ΡΠ»ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎ ΠΊΠΎΠ΄Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π²Π½Π΅ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ β ΠΎΠ½Π° ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ.
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²Π°ΠΆΠ½ΡΡ ΠΏΠΎΠ±ΠΎΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΎΠ² Π² V8 (Chrome, Opera) ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅.
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π² Chrome Ρ ΠΎΡΠΊΡΡΡΠΎΠΉ Developer Tools.
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ β ΡΠ°ΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ! Π ΡΠ΅ΠΎΡΠΈΠΈ, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Π°, Π½ΠΎ ΠΏΠΎΠΏΠ°Π»Π° ΠΏΠΎΠ΄ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π΄Π²ΠΈΠΆΠΊΠ°.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π·Π°Π±Π°Π²Π½ΡΠΌ (Π΅ΡΠ»ΠΈ ΡΠ΄Π°ΡΡΡΡ ΡΠ΅ΡΠΈΡΡ Π±ΡΡΡΡΠΎ) ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅. ΠΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ β ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π΅ ΡΡ Π²Π½Π΅ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΡΡ :
ΠΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ V8 ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°ΡΡ. ΠΡΠ»ΠΈ Π²Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΠ΅ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΎΠΉ Π² Chrome/Opera, ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π²Ρ Ρ Π½Π΅ΠΉ Π²ΡΡΡΠ΅ΡΠΈΡΠ΅ΡΡ.
ΠΡΠΎ Π½Π΅ Π±Π°Π³ Π² ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ΅, Π° ΡΠΊΠΎΡΠ΅Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ V8. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ. ΠΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠΎ, Π·Π°ΠΏΡΡΡΠΈΠ² ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅.
ΠΠ°Π΄Π°ΡΠΈ
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΡ Π»ΠΈ ΡΡΡΡΡΠΈΠΊΠΈ?
ΠΠ½ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡ? Π§ΡΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π²ΡΠΎΡΠΎΠΉ ΡΡΡΡΡΠΈΠΊ? 0,1 ΠΈΠ»ΠΈ 2,3 ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π΅ΡΡ?
ΠΡΠ²Π΅Ρ: 0,1.
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ Π² 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, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π΅Π΅ ΠΊΠΎΠΏΠΈΡ Π² Π΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ ΡΠΈΠΊΠ»Π°. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ Π²ΡΡ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΠΎΡΡ.
ΠΠΎΡ ΠΈ Π²ΡΡ. ΠΡΠ° ΡΡΠ°ΡΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΠ΅Ρ Π½Π° Π·Π²Π°Π½ΠΈΠ΅ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ΅ΠΉ, Π½ΠΎ ΠΊΠΎΠΌΡ-Π½ΠΈΠ±ΡΠ΄Ρ, Π½Π°Π΄Π΅ΡΡΡ, Π²ΡΡ-ΡΠ°ΠΊΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!