ΠΠ»Π°Π²Π° 10ΠΠΎΠ΄ΡΠ»ΠΈ
ΠΠ°ΡΠΈΠ½Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡ ΠΏΠΈΡΠ΅ ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΠΊΠ°ΠΊΡΠΎ Π΅Π΄Π½Π° ΠΌΡΠ°Π²ΠΊΠ° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π° Ρ ΡΠ»ΠΌ, ΠΊΠ°ΡΠΎ Π΅Π΄Π½Π° ΡΡΠ»Π° ΡΠ°ΡΡ Π½Π°Π²Π΅Π΄Π½ΡΠΆ, Π±Π΅Π· Π΄Π° ΠΌΠΈΡΠ»ΠΈ Π·Π° ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ° ΡΡΡΡΠΊΡΡΡΠ°. ΠΠ΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΡΠ΅ Π±ΡΠ΄Π°Ρ, ΠΊΠ°ΡΠΎ Ρ Π»Π°Π±Π°Π² ΠΏΡΡΡΠΊ. Π’Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·Π΄ΡΡΠΆΠ°Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅, Π½ΠΎ Π°ΠΊΠΎ ΡΠ°ΡΡΠ°Ρ ΠΏΡΠ΅ΠΊΠ°Π»Π΅Π½ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΈ ΡΠ΅ ΡΠ΅ ΡΠ°Π·ΠΏΠ°Π΄Π½Π°Ρ.
ΠΡΡΠ·Π½Π°Π²Π°ΠΉΠΊΠΈ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠ° ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ Π΄Π° ΠΏΡΠ΅ΠΊΠ°ΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΌΠΈΡΠ»Π΅ΠΉΠΊΠΈ Π·Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°. ΠΠ΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π½Π΅ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½ΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ, ΠΊΠ°ΡΠΎ ΡΠΊΠ°Π»Π½ΠΈ ΡΠΊΡΠ»ΠΏΡΠΎΡΠΈ. Π’Π΅ ΡΠ° ΡΠΎΠ»ΠΈΠ΄Π½ΠΈ, Π½ΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈ ΡΡΠΈΠ»ΠΈΠ΅.
ΠΠ°ΠΉΡΡΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡ, Π·Π½Π°Π΅ ΠΊΠΎΠ³Π° Π΄Π° ΠΏΡΠΈΠ»Π°Π³Π° ΡΡΡΡΠΊΡΡΡΠ° ΠΈ ΠΊΠΎΠ³Π° Π΄Π° ΠΎΡΡΠ°Π²ΠΈ Π½Π΅ΡΠ°ΡΠ° Π² ΡΡΡ Π½Π°ΡΠ° ΠΏΡΠΎΡΡΠ° ΡΠΎΡΠΌΠ°. ΠΠ΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΡΠ° ΠΊΠ°ΡΠΎ Π³Π»ΠΈΠ½Π°, ΡΡΠ΅Π³Π½Π°ΡΠΈ ΠΈ ΡΡΡΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠ²ΠΊΠΈ.β
ΠΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΈΠΌΠ° ΡΠΎΡΠΌΠ°. Π ΠΌΠ°Π»ΡΠΊ ΠΌΠ°ΡΠ°Π±, ΡΠ°Π·ΠΈ ΡΠΎΡΠΌΠ° ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΡΠ΅Π· ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ΡΠ΅ Π²ΡΡΡΠ΅ Π² ΡΠ΅Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠΈΡΠ΅ ΠΈΠΌΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π° Π² Π½Π°ΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ Π΄Π° ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Ρ ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ. Π€ΠΎΡΠΌΠ°ΡΠ° ΡΠ»Π΅Π΄Π²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΠΊΡΡΠ° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠ°, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ°.
ΠΠΎΠ³Π°ΡΠΎ Π³Π»Π΅Π΄Π°ΡΠ΅ Π² ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°, ΠΊΠΎΡΡΠΎ Π΅ ΡΡΠ»Π°, ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π΄Π° ΡΠ΅ ΡΠΌΠ΅ΡΠ²Π°Ρ Ρ ΡΠΎΠ½Π°. Π’Π°ΠΊΠΈΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΡΡ ΠΏΠΎ-ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΠΈ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΡ Π½Π°ΡΠΈΠ½ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ.
ΠΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π² Π³ΡΡΠΏΠΈ ΠΎΡ ΠΊΠΎΠ΄, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΡΠ² ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Π·Π°Π΅Π΄Π½ΠΎ. Π’Π°Π·ΠΈ Π³Π»Π°Π²Π° ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π° Π½ΡΠΊΠΎΠΈ ΠΎΡ ΠΏΠΎΠ»Π·ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠΎΠ²Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² JavaScript.
ΠΠ°ΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΠΏΠΎΠΌΠ°Π³Π°Ρ
ΠΠΌΠ° ΡΠ΅Π΄ΠΈΡΠ° ΠΏΡΠΈΡΠΈΠ½ΠΈ, ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΠΈΡΠΎ, Π°Π²ΡΠΎΡΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΡ ΡΠ²ΠΎΠΈΡΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ Π² Π³Π»Π°Π²ΠΈ ΠΈ ΡΠ°Π·Π΄Π΅Π»ΠΈ. Π’Π΅Π·ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠ°Π²ΡΡ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π·Π° Π΅Π΄Π½ΠΈ ΡΠΈΡΠ°ΡΠ΅Π» Π΄Π° Π²ΠΈΠ΄ΠΈ ΠΊΠ°ΠΊ Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° ΠΊΠ½ΠΈΠ³Π°ΡΠ° ΠΈ Π΄Π° Π½Π°ΠΌΠΈΡΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΡΠ°ΡΡΠΈ ΠΎΡ Π½Π΅Ρ, ΠΊΠΎΠΈΡΠΎ Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Ρ. Π’Π΅ ΡΡΡΠΎ ΠΏΠΎΠΌΠ°Π³Π°Ρ Π½Π° Π°Π²ΡΠΎΡΠ°, ΠΊΠ°ΡΠΎ ΠΌΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΡΡΠ΅Π½ ΡΠΎΠΊΡΡ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ°Π·Π΄Π΅Π».
ΠΠΎΠ»Π·ΠΈΡΠ΅ ΠΎΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ° ΡΡ ΠΎΠ΄Π½ΠΈ. Π‘ΡΡΡΠΊΡΡΡΠ°ΡΠ° ΠΏΠΎΠΌΠ°Π³Π° Π½Π° Ρ ΠΎΡΠ°ΡΠ°, ΠΊΠΎΠΈΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠ° Π·Π°ΠΏΠΎΠ·Π½Π°ΡΠΈ Ρ ΠΊΠΎΠ΄Π°, Π΄Π° Π½Π°ΠΌΠΈΡΠ°Ρ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΡΡΡ ΠΈ ΠΏΡΠ°Π²ΠΈ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡ Π΄Π° ΠΏΠ°Π·ΠΈ Π½Π΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΡΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π°Π½ΠΈ Π·Π°Π΅Π΄Π½ΠΎ.
ΠΡΠΊΠΎΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π΄ΠΎΡΠΈ ΡΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΠΎ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π΅Π½ ΡΠ΅ΠΊΡΡ Ρ ΡΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠ΅Π», Ρ ΠΊΠΎΡΡΠΎ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΡΠ΅ Π½Π°ΡΡΡΡΠ°Π²Π° Π΄Π° ΠΌΠΈΠ½Π΅ ΠΏΡΠ΅Π· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΠΈ Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ·Π° (ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈ) Π²ΡΠ²Π΅ΠΆΠ΄Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π½ΠΎ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π°. Π’ΠΎΠ²Π° ΠΏΡΠ°Π²ΠΈ ΡΠ΅ΡΠ΅Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠΌΡΡΠ°Π²Π°ΡΠΎ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠΎΠ΄, Π½ΠΎ ΠΈΠΌΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ°Π±ΠΎΡΠ° Π·Π° Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅. Π’ΠΎΠ·ΠΈ ΡΡΠΈΠ» ΡΠ΅ Π½Π°ΡΠΈΡΠ° Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅. ΠΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ Π² ΡΠ°Π·ΠΈ ΠΊΠ½ΠΈΠ³Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΡΠΈΡΠ°Ρ Π·Π° Π³ΡΠ°ΠΌΠΎΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ.
ΠΠ°ΡΠΎ ΠΎΠ±ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½Π΅ΡΠ°ΡΠ° ΠΈΠΌΠ° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ Π½Π° Π΅Π½Π΅ΡΠ³ΠΈΡ. Π ΡΠ°Π½Π½ΠΈΡΠ΅ Π΅ΡΠ°ΠΏΠΈ Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΎΡΠ΅ Π½Π΅ ΡΡΠ΅ ΡΡΠ²ΡΠ΅ΠΌ ΡΠΈΠ³ΡΡΠ½ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ, ΠΊΡΠ΄Π΅ ΠΈΠ»ΠΈ ΠΎΡ ΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ°, Π°Π· ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΡΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½ΠΈΡ Π±Π΅Π·ΡΡΡΡΠΊΡΡΡΠ΅Π½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄. ΠΡΠΎΡΡΠΎ ΡΠ»ΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ ΡΠ°ΠΌ, ΠΊΡΠ΄Π΅ΡΠΎ Π²ΠΈ Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ΄Π°. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, Π²ΠΈΠ΅ Π½ΡΠΌΠ° Π΄Π° Π³ΡΠ±ΠΈΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΡΡΠΈ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π½Π°Π·Π°Π΄ - Π½Π°ΠΏΡΠ΅Π΄ ΠΈ Π½ΡΠΌΠ° Π΄Π° ΡΠ΅ Π·Π°ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π²ΡΡΡΠ½ΠΎΡΡ Π½Π΅ Π΅ ΡΠ°ΡΡ ΠΎΡ Π²Π°ΡΠ°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°.
Namespacing
ΠΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΈΠΌΠ°Ρ Π½ΠΈΠ²ΠΎ Π½Π° ΠΎΠ±Ρ Π²Π°Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π³Π»ΠΎΠ±Π°Π»Π½ΠΎΡΠΎ (Π²ΠΈΠ΄ΠΈΠΌΠΎ ΠΎΡ Π²ΡΠ΅ΠΊΠΈ) ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ (Π²ΠΈΠ΄ΠΈΠΌΠΎ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π² ΠΊΠΎΡΡΠΎ Π΅), JavaScript Π½ΡΠΌΠ° ΡΠ°ΠΊΡΠ² ΠΎΠ±Ρ Π²Π°Ρ. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, Π²ΡΠΈΡΠΊΠΎ ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π²ΠΈΠΆΠ΄Π° ΠΈΠ·Π²ΡΠ½ ΠΎΠ±Ρ Π²Π°ΡΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° ΡΠ΅ Π²ΠΈΠΆΠ΄Π° Π½Π° Π²ΡΡΠΊΡΠ΄Π΅ Π΄ΠΎ Π½Π°ΠΉ-Π²ΠΈΡΠΎΠΊΠΎΡΠΎ Π½ΠΈΠ²ΠΎ.
ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ ΡΡΡ namespace Π·Π°ΠΌΡΡΡΡΠ²Π°Π½Π΅ΡΠΎ Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ²ΡΡΠ·Π°Π½ ΠΊΠΎΠ΄, Π½Π°Π»Π°Π³Π° Π΄Π° ΡΠ΅ ΡΠΏΠΎΠ΄Π΅Π»Ρ Π΅Π΄ΠΈΠ½Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Π·Π° ΠΊΠΎΠ΅ΡΠΎ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ
ΠΌΠ΅ Π² ΠΠ»Π°Π²Π° 4, ΠΊΡΠ΄Π΅ΡΠΎ ΠΎΠ±Π΅ΠΊΡΠ° Math Π±Π΅ΡΠ΅ Π΄Π°Π΄Π΅Π½, ΠΊΠ°ΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΎΠ±Π΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ Π΄Π΅ΠΉΡΡΠ²Π°, ΠΊΠ°ΡΠΎ ΠΌΠΎΠ΄ΡΠ» ΡΡΠ΅Π· Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ²ΡΡΠ·Π°Π½Π° Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ.
ΠΡΠΏΡΠ΅ΠΊΠΈ, ΡΠ΅ JavaScript Π½Π΅ ΠΏΡΠ΅Π΄Π²ΠΈΠΆΠ΄Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½ ΠΌΠΎΠ΄ΡΠ» Π²ΡΠ΅ ΠΎΡΠ΅, ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ subnamespaces ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΎ, Π»ΠΈΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π²ΡΠ² Π²ΡΡΡΠ΅ΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»Π°. ΠΠΎ ΠΊΡΡΠ½ΠΎ Π² ΡΠ°Π·ΠΈ Π³Π»Π°Π²Π°, Π°Π· ΡΠ΅ ΠΎΠ±ΡΡΠ΄Ρ Π½Π°ΡΠΈΠ½ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠΌΠ½ΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π΅ Π½Π° namespace Π·Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ Π²ΡΡΡ
Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ JavaScript Π½ΠΈ Π΄Π°Π²Π°.
ΠΠΎΠ²ΡΠΎΡΠ½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°
Π βΠΏΠ»ΠΎΡΡΠΊβ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ Π½Π΅ Π΅ ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½, ΠΊΠ°ΡΠΎ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π½Π΅ Π΅ ΡΡΠ½ΠΎ ΠΊΠΎΠΈ ΡΠ°ΡΡΠΈ ΠΎΡ ΠΊΠΎΠ΄Π° ΡΠ° Π½ΡΠΆΠ½ΠΈ, Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ. Π ΠΌΠΎΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π·Π° ΡΠΏΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠ°Π³ΠΎΠ²Π΅ΡΠ΅ (Π²ΠΈΠΆ ΠΠ»Π°Π²Π° 9), Π°Π· Π½Π°ΠΏΠΈΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π² Π΄ΡΡΠ³ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΠΈΠ΄Π° ΠΈ Π΄Π° ΠΊΠΎΠΏΠΈΡΠ°ΠΌ ΡΠ°ΡΡΠΈΡΠ΅ ΠΎΡ ΡΡΠ°ΡΠ°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°, ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°ΠΌ Π½ΡΠΆΠ΄Π° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ° ΠΈ Π΄Π° Π³ΠΈ ΠΏΠΎΡΡΠ°Π²Ρ Π² Π½ΠΎΠ²Π°ΡΠ° ΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π°, Π°ΠΊΠΎ Π½Π°ΠΌΠ΅ΡΡ Π³ΡΠ΅ΡΠΊΠ° Π² ΠΊΠΎΠ΄Π°, Π°Π· ΡΠ΅ Π³ΠΎ ΠΎΠΏΡΠ°Π²Ρ ΡΠ°ΠΌΠΎ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΠΎΠ²Π° Π² ΠΊΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΡΠ°Π±ΠΎΡΡ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΈ Π½Π°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠ΅ Π·Π°Π±ΡΠ°Π²Ρ Π΄Π° Π³ΠΎ ΠΎΠΏΡΠ°Π²Ρ Π² Π΄ΡΡΠ³Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°.
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ, ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΊΠΈΠ²Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ, Π΄ΡΠ±Π»ΠΈΡΠ°Π½ΠΈ ΠΏΠ°ΡΡΠ΅ΡΠ° ΠΊΠΎΠ΄, ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ΅ ΠΎΡΠΊΡΠΈΠ΅ΡΠ΅, ΡΠ΅ Π³ΡΠ±ΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π΅Π½Π΅ΡΠ³ΠΈΡ Π·Π° Π΄Π° Π³ΠΈ ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΈ ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΡΠ΅.
ΠΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΈ ΠΏΠ°ΡΡΠ΅ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π³ΠΈ ΠΏΡΠ°Π²ΠΈ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΠΌΠΈ Π·Π° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΠΈ ΡΠΏΠΎΠ΄Π΅Π»ΡΠ½Π΅, Π·Π°ΡΠΎΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΡΡΠΈ ΠΎΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΠΉΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅, ΠΊΠ°ΡΠΎ ΠΌΠΎΠ΄ΡΠ» ΡΠ° Π·Π°ΡΠ΅Π΄Π΅Π½ΠΈ ΠΎΡ ΡΡΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½ ΡΠ°ΠΉΠ».
Π’Π°Π·ΠΈ ΠΈΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΠΎΡΠ΅ ΠΌΠΎΡΠ½ΠΎΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ - ΡΠΎΠ²Π° ΠΊΠΎΠΉ ΠΌΠΎΠ΄ΡΠ» ΠΎΡ ΠΊΠΎΠΉ Π·Π°Π²ΠΈΡΠΈ - ΡΠ° ΠΈΠ·ΡΠΈΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠ° Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ½ΡΠ½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ (Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ).
Π Π°Π·ΡΠΈΡΡΠ²Π°ΠΉΠΊΠΈ ΡΠ°Π·ΠΈ ΠΈΠ΄Π΅Ρ ΠΎΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅, ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½ ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΡΡΠΎ ΡΠ»Π΅Π΄ΠΈ ΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΡΠΎΡΠΈΡΠΈ Ρ ΠΈΠ»ΡΠ΄ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΡΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ°, ΠΎΡ ΠΊΠΎΡΡΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΈ ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Ρ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅, Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° Ρ ΠΈΠ·ΡΠ΅Π³Π»ΠΈ.
Π’Π°ΠΊΠ°Π²Π° ΡΡΠ»ΡΠ³Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°. Π’Ρ ΡΠ΅ Π½Π°ΡΠΈΡΠ° NPM (npmjs.org). NPM ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΠΎΠ½Π»Π°ΠΉΠ½ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅, ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π·Π°Π²ΠΈΡΠΈ Π²Π°ΡΠ°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°. Π’Ρ ΡΠ΅ ΡΠΎΠ΄ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° Node.js ΡΡΠ΅Π΄Π° Π·Π° JavaScript, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π² ΠΠ»Π°Π²Π° 20, Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ΡΠΎ Π·Π° Π±ΡΠ°ΡΠ·ΡΡΠ°.
ΠΡΠ΄Π΅Π»ΡΠ½Π΅
ΠΡΡΠ³Π° Π²Π°ΠΆΠ½Π° ΡΠΎΠ»Ρ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Π΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΡΡΠΈ ΠΎΡ ΠΊΠΎΠ΄ ΠΎΡ Π΄ΡΡΠ³, ΠΏΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½, ΠΊΠΎΠΉΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈΡΠ΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ ΠΏΡΠ°Π²ΡΡ Π² ΠΠ»Π°Π²Π° 6. ΠΠ΄ΠΈΠ½ Π΄ΠΎΠ±ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½ ΠΌΠΎΠ΄ΡΠ» ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° Π²ΡΠ½ΡΠ΅Π½ ΠΊΠΎΠ΄, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°. Π’ΡΠΉ ΠΊΠ°ΡΠΎ, ΠΌΠΎΠ΄ΡΠ»ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ ΠΈ Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ, ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΡΡΠ°Π²Π° ΡΡΡΠΈΡ (Π°ΠΊΠΎ Π΅ ΡΡΠ°Π±ΠΈΠ»Π΅Π½), ΡΠ°ΠΊΠ° ΡΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½ΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π²Π΅ΡΡΠΈΡ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΡΠ΅Π±Π΅ ΡΠΈ.
ΠΠΌΠ°ΠΉΡΠ΅ Π² ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ Π΅Π΄ΠΈΠ½ ΡΡΠ°Π±ΠΈΠ»Π΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π½ΡΠΌΠ° Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠΈΡΠΎ Π΄Π° ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ ΠΊΡΠΌ Π½Π΅Π³ΠΎ. Π’ΠΎΠ²Π° ΠΏΡΠΎΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π΅ Π΅ ΠΎΡΡΡΡΠ°Π½Π΅Π½Π° ΠΈ Π½Π΅ΠΉΠ½ΠΎΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ.
ΠΠ΄ΠΈΠ½ Π΄ΠΎΠ±ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΠΌΠΎΠ΄ΡΠ» ΡΡΡΠ±Π²Π° Π΄Π° Π΄Π°Π΄Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° Π΄Π° ΡΠ°ΡΡΠ΅ Π±Π΅Π· Π΄Π° ΡΠ΅ ΡΡΡΠΏΠΈ ΡΡΠ°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΈΠ·Π»Π°Π³Π°ΠΉΠΊΠΈ Π½ΡΠΊΠΎΠΈ ΠΎΡ Π²ΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π°, ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ·ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎ-ΠΌΠΎΡΠ΅Π½ ΠΈ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π³ΡΠ²ΠΊΠ°Π², Π·Π° Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Π² ΡΠΈΡΠΎΠΊ ΡΠΏΠ΅ΠΊΡΡΡ ΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ.
ΠΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π»Π°Π³Π°Ρ Π΅Π΄ΠΈΠ½Π½Π°, ΡΠΈΠΊΡΠΈΡΠ°Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ, ΠΊΠ°ΡΠΎ ΡΠ΅ΡΠ΅Ρ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ», ΡΠΎΠ·ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈΠ΄Π²Π° Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ. ΠΠ° Π΄ΡΡΠ³ΠΈ, ΠΊΠ°ΡΠΎ ΡΠ΅ΠΊΡΡΠΎΠ² ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°ΡΠΏΠ΅ΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ ΠΎΡ Π²ΡΠ½ΡΠ΅Π½ ΠΊΠΎΠ΄ Π·Π° Π΄ΠΎΡΡΡΠΏ(ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅, ΡΡΠ°ΠΉΠ»ΠΈΠ½Π³, Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΠΈ Ρ.Π½.) ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈΠΈ, ΠΊΠ°ΡΠΎ namespaces
Π€ΡΠ½ΠΊΡΠΈΠΈΡΠ΅ ΡΠ° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΈΡΠ΅ Π½Π΅ΡΠ° Π² JavaScript, ΠΊΠΎΠΈΡΠΎ ΡΡΠ·Π΄Π°Π²Π°Ρ Π½ΠΎΠ² ΠΎΠ±Ρ Π²Π°Ρ. Π’Π°ΠΊΠ° ΡΠ΅, Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π½Π°ΡΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π° ΠΈΠΌΠ°Ρ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΈ ΠΎΡΠ½ΠΎΠ²Π΅ΠΌ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ Π·Π° ΡΠΎΠ·ΠΈ ΡΡΠΈΠ²ΠΈΠ°Π»Π΅Π½ ΠΌΠΎΠ΄ΡΠ», Π·Π° Π°ΡΠΎΡΠΈΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π° Ρ Π½ΠΎΠΌΠ΅ΡΠ° Π·Π° Π΄Π½ΠΈΡΠ΅ ΠΎΡ ΡΠ΅Π΄ΠΌΠΈΡΠ°ΡΠ°, Π²ΡΡΠ½Π°ΡΠΈ ΠΎΡ getDay ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π° Date ΠΎΠ±Π΅ΠΊΡΠ°:
var names = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; function dayName(number) { return names[number]; } console.log(dayName(1)); // β Monday
Π€ΡΠ½ΠΊΡΠΈΡΡΠ° dayName Π΅ ΡΠ°ΡΡ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»Π°, Π½ΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° names Π½Π΅ Π΅. ΠΠΈΡ
ΠΌΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅Π»ΠΈ Π΄Π° Π½Π΅ Ρ ΠΈΠ·ΡΠΈΠΏΠ²Π°ΠΌΠ΅ Π² Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡ ΠΎΠ±Ρ
Π²Π°Ρ.
ΠΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠ²Π°:
var dayName = function() { var names = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; return function(number) { return names[number]; }; }(); console.log(dayName(3)); // β Wednesday
Π‘Π΅Π³Π° names Π΅ Π»ΠΎΠΊΠ°Π»Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π² (Π°Π½ΠΎΠ½ΠΈΠΌΠ½Π°) ΡΡΠ½ΠΊΡΠΈΡ. Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° ΠΈ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΈ Π½Π΅ΠΉΠ½Π°ΡΠ° Π²ΡΡΠ½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ (Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½Π°ΡΠ° dayName ΡΡΠ½ΠΊΡΠΈΡ) ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°. ΠΠΈΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΊΠΎΠ΄ Π² ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ, ΡΡΡ ΡΡΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΈ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π²ΡΡΡΠ΅ΡΠ΅Π½ΠΈ Π·Π° Π½Π°ΡΠΈΡ ΠΌΠΎΠ΄ΡΠ», Π²ΠΈΠ΄ΠΈΠΌΠΈ Π·Π° ΡΠ°ΠΌΠΈΡ ΠΌΠΎΠ΄ΡΠ», Π½ΠΎ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΈ ΠΎΡ Π²ΡΠ½ΡΠ½ΠΈΡ ΠΊΠΎΠ΄.
ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π΄Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°ΠΌΠ΅ ΠΊΠΎΠ΄ ΠΈΠ·ΡΡΠ»ΠΎ ΠΎΡ Π²ΡΠ½ΡΠ½ΠΈΡ ΡΠ²ΡΡ. Π‘Π»Π΅Π΄Π²Π°ΡΠΈΡ ΠΌΠΎΠ΄ΡΠ» ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π°ΡΠ°, Π½ΠΎ Π²ΡΡΡΠ½ΠΎΡΡ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π·Π° ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΊΡΠΌ Π΄ΡΡΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
(function() { function square(x) { return x * x; } var hundred = 100; console.log(square(hundred)); })(); // β 10000
Π’ΠΎΠ·ΠΈ ΠΊΠΎΠ΄ ΠΏΡΠΎΡΡΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΠΊΠ²Π°Π΄ΡΠ°ΡΠ° Π½Π° 100, Π½ΠΎ Π² ΡΠ΅Π°Π»Π½ΠΈΡ ΡΠ²ΡΡ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π΅Π΄ΠΈΠ½ ΠΌΠΎΠ΄ΡΠ», ΠΊΠΎΠΉΡΠΎ Π΄ΠΎΠ±Π°Π²Ρ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΡΠΌ Π½ΡΠΊΠΎΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΠΈΠ»ΠΈ ΡΡΠ·Π΄Π°Π²Π° Π½Π΅ΡΠΎ Π² ΡΠ΅Π± ΡΡΡΠ°Π½ΠΈΡΠ°. Π’ΠΎΠΉ Π΅ ΡΠ²ΠΈΡ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡ, Π·Π° Π΄Π° ΠΏΠΎΠΏΡΠ΅ΡΠΈ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²ΡΡΡΠ΅ΡΠ½ΠΎ Π΄Π° Π·Π°ΠΌΡΡΡΡΡ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡ ΠΎΠ±Ρ Π²Π°Ρ.
ΠΠ°ΡΠΎ ΡΠ²ΠΈΠ²Π°ΠΌΠ΅ namespace ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π² ΡΠΈΡΡ ΡΠΊΠΎΠ±ΠΈ? Π’ΠΎΠ²Π° Π΅ ΡΠ²ΡΡΠ·Π°Π½ΠΎ Ρ ΠΏΡΠΈΡΠΌΠΈΡΠ° Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π½Π° JavaScript. ΠΠΊΠΎ ΠΈΠ·ΡΠ°Π·Π° Π·Π°ΠΏΠΎΡΠ²Π° Ρ ΠΊΠ»ΡΡΠΎΠ²Π°ΡΠ° Π΄ΡΠΌΠ° function, ΡΠΎΠ²Π° Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΈΠ·ΡΠ°Π·. ΠΠ±Π°ΡΠ΅, Π°ΠΊΠΎ ΠΈΠ·ΡΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΎΡΠ²Π° Ρ function, ΡΠΎΠ²Π° Π΅ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΈΠΌΠ΅ ΠΈ Π½Π΅ Π΅ ΠΈΠ·ΡΠ°Π·, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ°, ΠΊΠ°ΡΠΎ ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ ΡΠΊΠΎΠ±ΠΈ ΡΠ»Π΅Π΄ Π½Π΅Π³ΠΎ. ΠΠΎΠΆΠ΅ Π΄Π° ΠΌΠΈΡΠ»ΠΈΡΠ΅ Π·Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΡΠ²ΠΈΠ²Π°ΡΠΈ ΡΠΊΠΎΠ±ΠΈ, ΠΊΠ°ΡΠΎ ΡΡΠΈΠΊ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ½ΡΠ΄ΠΈ ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π΄Π° ΡΠ΅ ΡΡΠ»ΠΊΡΠ²Π°, ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΠ°Π·.
ΠΠ±Π΅ΠΊΡΠΈ, ΠΊΠ°ΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
Π‘Π΅Π³Π° ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅, ΡΠ΅ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΡΠ΅ Π΅Π΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Π² Π½Π°ΡΠΈΡ ΠΌΠΎΠ΄ΡΠ» Π½Π° ΡΠ΅Π΄ΠΌΠΈΡΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Ρ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π΄Π΅Π½Ρ Π² Π½ΠΎΠΌΠ΅Ρ. ΠΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ Π΄Π° Π²ΡΡΠ½Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π²Π΅ΡΠ΅, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ²ΠΈΠ΅ΠΌ Π΄Π²Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π΅Π΄ΠΈΠ½ ΠΎΠ±Π΅ΠΊΡ.
var weekDay = function() { var names = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; return { name: function(number) { return names[number]; }, number: function(name) { return names.indexOf(name); } }; }(); console.log(weekDay.name(weekDay.number("Sunday"))); // β Sunday
ΠΠ° ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΡΠ±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΈΠ·Π½Π°ΡΡΠ½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π² ΠΎΠ±Π΅ΠΊΡ Π² ΠΊΡΠ°Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ°, ΡΡΠ°Π²Π° Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ ΠΈΠ·Π½Π΅ΡΠ΅Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠΌΠ° Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡ Π΄Π° Π±ΡΠ΄Π°Ρ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π³ΠΈ Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π½ΡΠΊΡΠ΄Π΅ Π΄ΡΡΠ³Π°Π΄Π΅, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π²ΡΡΡΠ΅ΡΠ΅Π½ ΠΊΠΎΠ΄. Π£Π΄ΠΎΠ±Π½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΎΠ±Π΅ΠΊΡ (ΡΡΠ»ΠΎΠ²Π½ΠΎ Π½Π°ΡΠ΅ΡΠ΅Π½ exports) ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠΌΠ΅ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·Π½Π΅ΡΠ΅Π½ΠΎ. Π ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠ΄ΡΠ» ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π²Π·Π΅ΠΌΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° ΠΎΠ±Π΅ΠΊΡ, ΠΊΠ°ΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ Π½Π° ΠΊΠΎΠ΄Π° ΠΈΠ·Π²ΡΠ½ ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π΄Π° Π³ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅ ΠΈ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°. (ΠΠ·Π²ΡΠ½ ΡΡΠ½ΠΊΡΠΈΡΡΠ°, this ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡ ΠΎΠ±Ρ
Π²Π°Ρ Π½Π° ΠΎΠ±Π΅ΠΊΡΠ°).
(function(exports) { var names = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; exports.name = function(number) { return names[number]; }; exports.number = function(name) { return names.indexOf(name); }; })(this.weekDay = {}); console.log(weekDay.name(weekDay.number("Saturday"))); // β Saturday
ΠΡΠ΄Π΅Π»ΡΠ½Π΅ ΠΎΡ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡ ΠΎΠ±Ρ Π²Π°Ρ
ΠΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΡ ΠΌΠΎΠ΄Π΅Π» ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ JavaScript ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π·Π° Π±ΡΠ°ΡΠ·ΡΡΠ°. ΠΠΎΠ΄ΡΠ»ΡΡ ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ° Π΅Π΄Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΠΈ ΡΠ΅ ΡΠ²ΠΈΠ΅ Π½Π΅ΠΉΠ½ΠΈΡ ΠΊΠΎΠ΄ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡ, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° ΠΈΠΌΠ° ΡΠ²ΠΎΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ namespace. ΠΠΎ ΡΠΎΠ·ΠΈ ΠΌΠΎΠ΄Π΅Π» Π²ΡΠ΅ ΠΎΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π°ΠΊΠΎ ΡΠ΅ ΡΠ»ΡΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π° ΠΈΠΌΠ°Ρ ΠΏΡΠ΅ΡΠ΅Π½ΡΠΈΡ ΠΊΡΠΌ ΡΡΡΠΎΡΠΎ ΠΈΠΌΠ΅ ΠΈΠ»ΠΈ Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π·Π°ΡΠ΅Π΄ΠΈΡΠ΅ Π΄Π²Π΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° Π΄Π°Π΄Π΅Π½ ΠΌΠΎΠ΄ΡΠ» ΡΡΠΏΠΎΡΠ΅Π΄Π½ΠΎ Π΅Π΄Π½Π° Π΄ΠΎ Π΄ΡΡΠ³Π°.
Π‘ ΠΌΠ°Π»ΠΊΠΎ Π²ΡΡΠ·ΠΊΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π΅Π΄ΠΈΠ½ ΠΌΠΎΠ΄ΡΠ» Π΄Π° ΠΏΠΎΠΈΡΠΊΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° ΠΎΠ±Π΅ΠΊΡ ΠΎΡ Π΄ΡΡΠ³ ΠΌΠΎΠ΄ΡΠ», Π±Π΅Π· Π΄Π° ΠΌΠΈΠ½Π°Π²Π° ΠΏΡΠ΅Π· Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡ ΠΎΠ±Ρ
Π²Π°Ρ. ΠΠ°ΡΠ°ΡΠ° ΡΠ΅Π» Π΅ require ΡΡΠ½ΠΊΡΠΈΡ, Π½Π° ΠΊΠΎΡΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄Π°Π΄Π΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π°, ΡΠ΅ Π·Π°ΡΠ΅Π΄ΠΈ ΡΠ°ΠΉΠ» (ΠΎΡ Π΄ΠΈΡΠΊ ΠΈΠ»ΠΈ ΠΎΡ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π²ΡΡΡ
Ρ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°) ΠΈ ΡΠ΅ Π²ΡΡΠ½Π΅ ΡΡΠΎΡΠ²Π΅ΡΠ½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ΅ΡΠ°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅, ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΈ ΠΏΠΎ-ΡΠ°Π½ΠΎ ΠΈ ΠΈΠΌΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΏΠΎΠ»Π·Π° Π·Π° Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² Π½Π°ΡΠ°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈ ΡΡΡΠ΄Π½ΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½ΡΠΊΠΎΠΉ Π΄ΡΡΠ³ ΠΌΠΎΠ΄ΡΠ» Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΏΠΎΡΠΎΡΠ²Π°, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ Π½Π΅Π³ΠΎ.
ΠΠ° require ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ Π΄Π²Π΅ Π½Π΅ΡΠ°. ΠΡΡΠ²ΠΎ Π½ΠΈ ΡΡΡΠ±Π²Π° ΡΡΠ½ΠΊΡΠΈΡ readFile, ΠΊΠΎΡΡΠΎ Π²ΡΡΡΠ° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄Π°Π΄Π΅Π½ ΡΠ°ΠΉΠ», ΠΊΠ°ΡΠΎ string. (Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π΅ Π½Π°Π»ΠΈΡΠ½Π° Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ JavaScript, Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ΅Π΄ΠΈ Π·Π° JavaScript, ΠΊΠ°ΡΠΎ Π±ΡΠ°ΡΠ·ΡΡ ΠΈ Node.js, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅. ΠΠ° ΡΠ΅Π³Π° Π½Π΅ΠΊΠ° ΠΏΡΠΎΡΡΠΎ ΡΠ΅ ΠΏΡΠ΅ΡΡΡΡΠ²Π°ΠΌΠ΅, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ.) ΠΡΠΎΡΠΎ, ΡΡΡΠ±Π²Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠΎΠ·ΠΈ string, ΠΊΠ°ΡΠΎ JavaScript ΠΊΠΎΠ΄.
ΠΡΠ΅Π½ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ ΠΊΠΎΠ΄
ΠΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π°ΡΠΈΠ½Π° Π΄Π° ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ Π΄Π°Π½Π½ΠΈ ΠΎΡ string ΠΊΠΎΠ΄ ΠΈ Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ, ΠΊΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ Π½Π°ΡΡΠΎΡΡΠ°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°.
ΠΠ°ΠΉ-ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΈΡΡ Π½Π°ΡΠΈΠ½ Π΅ ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ eval, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈ ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ°ΡΠ° ΠΎΡ ΠΊΠΎΠ΄ Π² ΡΠ΅ΠΊΡΡΠΈΡ ΠΎΠ±Ρ
Π²Π°Ρ. Π’ΠΎΠ²Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π΅ Π»ΠΎΡΠ° ΠΈΠ΄Π΅Ρ, Π·Π°ΡΠΎΡΠΎ ΡΠ΅ ΡΠ΅ ΡΠ°Π·ΠΏΠ°Π΄Π½Π΅ ΠΎΡ Π½ΡΠΊΠΎΠ΅ ΠΎΡ Π½ΠΎΡΠΌΠ°Π»Π½ΠΈΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΠΈΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠΌΠ°Ρ ΠΎΠ±Ρ
Π²Π°Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Ρ ΠΎΡ Π²ΡΠ½ΡΠ½ΠΈΡ ΡΠ²ΡΡ.
function evalAndReturnX(code) { eval(code); return x; } console.log(evalAndReturnX("var x = 2")); // β 2
ΠΠΎ Π΄ΠΎΠ±ΡΡ Π½Π°ΡΠΈΠ½ Π·Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ ΠΊΠΎΠ΄, Π΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Function ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°. Π’ΠΎΠΉ Π²Π·Π΅ΠΌΠ° Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°: string, ΡΡΠ΄ΡΡΠΆΠ°Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ ΡΡΡ Π·Π°ΠΏΠ΅ΡΠ°ΠΈ ΡΠΏΠΈΡΡΠΊ ΠΎΡ ΠΈΠΌΠ΅Π½Π° Π½Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ ΠΈ string, ΡΡΠ΄ΡΡΠΆΠ°Ρ ΡΡΠ»ΠΎ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ.
var plusOne = new Function("n", "return n + 1;"); console.log(plusOne(4)); // β 5
Π’ΠΎΠ²Π° Π΅ ΡΠΎΡΠ½ΠΎ ΠΎΠ½ΠΎΠ²Π°, ΠΎΡ ΠΊΠΎΠ΅ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° Π·Π° Π½Π°ΡΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠΈΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ Π΄Π° ΡΠ²ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° Π² Π΅Π΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΠΎΠ±Ρ Π²Π°ΡΠ° Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π° ΡΡΠ°Π½Π΅ ΠΎΠ±Ρ Π²Π°ΡΠ° Π½Π° Π½Π°ΡΠΈΡ ΠΌΠΎΠ΄ΡΠ».
Require
Π‘Π»Π΅Π΄Π²Π°ΡΠΎΡΠΎ Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° require:
function require(name) { var code = new Function("exports", readFile(name)); var exports = {}; code(exports); return exports; } console.log(require("weekDay").name(1)); // β Monday
Π’ΡΠΉ ΠΊΠ°ΡΠΎ, new Function ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠ²ΠΈΠ²Π° ΠΊΠΎΠ΄a Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡ, Π½ΠΈΠ΅ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π·Π° ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° namespace ΡΡΠ½ΠΊΡΠΈΡ Π² ΡΠ°ΠΌΠΈΡ ΡΠ°ΠΉΠ» Π½Π° ΠΌΠΎΠ΄ΡΠ»Π°. Π ΡΡΠΉ ΠΊΠ°ΡΠΎ, ΠΏΡΠ°Π²ΠΈΠΌ exports Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π·Π° ΠΌΠΎΠ΄ΡΠ» ΡΡΠ½ΠΊΡΠΈΡΡΠ°, ΡΠ°ΠΌΠΈΡ ΠΌΠΎΠ΄ΡΠ» Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠ°. Π’ΠΎΠ²Π° ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΈ Π½Π΅ΡΠ° ΠΎΡ Π½Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ΅Π½ ΠΌΠΎΠ΄ΡΠ».
var names = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; exports.name = function(number) { return names[number]; }; exports.number = function(name) { return names.indexOf(name); };
ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΠΌΠΎΠ΄Π΅Π», Π΅Π΄ΠΈΠ½ ΠΌΠΎΠ΄ΡΠ» ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π·Π°ΠΏΠΎΡΠ²Π° Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠΈ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΡΡ.
var weekDay = require("weekDay"); var today = require("today"); console.log(weekDay.name(today.dayNumber()));
ΠΠΏΡΠΎΡΡΠ΅Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° require Π΄Π°Π΄Π΅Π½ΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π°, ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΡ Π΅Π΄Π½Π° ΡΡΡΠ°Π½Π°, ΡΠΎ ΡΠ΅ Π·Π°ΡΠ΅Π΄ΠΈ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ° ΠΌΠΎΠ΄ΡΠ» Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° require, ΡΠ°ΠΊΠ° ΡΠ΅ Π°ΠΊΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠΎΠ΄ΡΠ»Π° ΠΈΠΌΠ°Ρ ΡΡΡΠ°ΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΈΠ»ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ ΠΊΡΠΌ require ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈ Π²ΡΡΡΠ΅ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ, ΡΠ΅ Π³ΡΠ±ΠΈ Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π΅Π½Π΅ΡΠ³ΠΈΡ.
Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΅ΡΠ΅Π½ΠΎ ΡΡΠ΅Π· ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ ΡΠ° Π·Π°ΡΠ΅Π΄Π΅Π½ΠΈ Π² ΠΎΠ±Π΅ΠΊΡ ΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΡΡΡΠ°ΠΌΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π·Π°ΡΠ΅Π΄Π΅Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ.
ΠΡΠΎΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΅, ΡΠ΅ Π½Π΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π° ΠΌΠΎΠ΄ΡΠ» Π΄Π° ΠΈΠ·Π½Π°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΡΠ°Π·Π»ΠΈΡΠ½Π° ΠΎΡ exports ΠΎΠ±Π΅ΠΊΡΠ°, ΠΊΠ°ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡ Π΅Π΄ΠΈΠ½ ΠΌΠΎΠ΄ΡΠ» ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π½Π° ΡΠΈΠΏΠ° Π½Π° ΠΎΠ±Π΅ΠΊΡΠ°, ΠΊΠΎΠΉΡΠΎ Π³ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°. Π’ΠΎΡΠ½ΠΎ ΡΠ΅Π³Π°, ΡΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ²Π°, Π·Π°ΡΠΎΡΠΎ require Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° exports ΠΎΠ±Π΅ΠΊΡΠ°, ΠΊΠΎΠΉΡΠΎ ΡΡΠ·Π΄Π°Π²Π° Π΅ΠΊΡΠΏΠΎΡΡΠ½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ.
Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠΎΠ²Π° Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ ΠΌΠΎΠ΄ΡΠ» Ρ Π΄ΡΡΠ³Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° module, ΠΊΠΎΡΡΠΎ Π΅ ΠΎΠ±Π΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ exports. Π’ΠΎΠ²Π° ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΏΠΎΡΠΎΡΠ²Π° ΠΏΡΠ°Π·Π΅Π½ ΠΎΠ±Π΅ΠΊΡ, ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΎΡ require, Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π·Π°ΠΌΠ΅Π½Π΅Π½ Ρ Π΄ΡΡΠ³Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, Π·Π° Π΄Π° Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ° Π½Π΅ΡΠΎ Π΄ΡΡΠ³ΠΎ.
function require(name) { if (name in require.cache) return require.cache[name]; var code = new Function("exports, module", readFile(name)); var exports = {}, module = {exports: exports}; code(exports, module); require.cache[name] = module.exports; return module.exports; } require.cache = Object.create(null);
Π‘Π΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠΎΠ΄ΡΠ»Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π΄Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° (require), Π·Π° Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²Π·Π°ΠΈΠΌΠ½ΠΎ, Π±Π΅Π· Π΄Π° ΠΌΠΈΠ½Π°Π²Π°Ρ ΠΏΡΠ΅Π· Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡ ΠΎΠ±Ρ
Π²Π°Ρ.
Π’ΠΎΠ·ΠΈ ΡΡΠΈΠ» Π½Π° ΠΌΠΎΠ΄ΡΠ»Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅ Π½Π°ΡΠΈΡΠ° CommonJS modules, ΡΠ»Π΅Π΄ ΠΏΡΠ΅Π²Π΄ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΡΠ² Π³ΠΎ Π΅ ΠΏΠΎΡΠΎΡΠΈΠ». Π’Ρ Π΅ Π²Π³ΡΠ°Π΄Π΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π² Node.js. Π Π΅Π°Π»Π½ΠΈΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠ°Π²ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ . ΠΠ°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ Π΅, ΡΠ΅ ΡΠ΅ ΠΈΠΌΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ» ΠΊΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½Π° ΡΠ°ΡΡ Π½Π° ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈ Π΄Π²Π΅ΡΠ΅: ΠΏΡΡΠΈΡΠ° ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΠΊΡΡΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠΎΡΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΊΡΠΌ Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
ΠΠ°Π²Π½ΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ
ΠΡΠΏΡΠ΅ΠΊΠΈ, ΡΠ΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° CommonJS ΡΡΠΈΠ» ΠΏΡΠΈ ΠΏΠΈΡΠ°Π½Π΅ Π½Π° JavaScript Π·Π° Π±ΡΠ°ΡΠ·ΡΡΠΈ, ΡΠΎΠΉ Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π°Π½Π³Π°ΠΆΠΈΡΠ°Ρ. ΠΡΠΈΡΠΈΠ½Π°ΡΠ° Π·Π° ΡΠΎΠ²Π° Π΅, ΡΠ΅ ΡΠ΅ΡΠ΅Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ» (ΠΌΠΎΠ΄ΡΠ») ΠΎΡ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½Π΅ ΠΎΡ ΡΠ²ΡΡΠ΄ΠΈΡ Π΄ΠΈΡΠΊ. ΠΠΎΠΊΠ°ΡΠΎ ΡΠΊΡΠΈΠΏΡ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² Π±ΡΠ°ΡΠ·ΡΡΠ°, Π½ΠΈΡΠΎ Π΄ΡΡΠ³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠΈ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°, Π½Π° ΠΊΠΎΡΡΠΎ ΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈ, ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½ΠΈ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΡΠ°Π½Π°Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ Π² ΠΠ»Π°Π²Π° 14. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΏΡΠΈ Π²ΡΡΠΊΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° require Π΄Π° ΠΎΡΠΈΠ΄Π΅ ΠΈ ΠΈΠ·Π²Π°Π΄ΠΈ Π½Π΅ΡΠΎ ΠΎΡ Π½ΡΠΊΠ°ΠΊΡΠ² Π΄Π°Π»Π΅ΡΠ΅Π½ ΡΠ΅Π± ΡΡΡΠ²ΡΡ, ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΡΠ΅ Π·Π°ΠΌΡΡΠ·Π½Π΅ Π·Π° Π±ΠΎΠ»Π΅Π·Π½Π΅Π½ΠΎ Π΄ΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΏΡΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅.
ΠΠ΄ΠΈΠ½ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΡΠ΅ Ρ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°, ΠΊΠ°ΡΠΎ Browserify Π² ΠΊΠΎΠ΄Π° ΡΠΈ, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΡΡΠ΅ Π³ΠΎ Π²ΡΡΡΠΈΠ»ΠΈ Π½Π° ΡΠ΅Π± ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°. Π’Ρ ΡΠ΅ Π³Π»Π΅Π΄Π° Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΠΊΡΠΌ require, ΡΠ΅ΡΠ°Π²Π°ΠΉΠΊΠΈ Π²ΡΠΈΡΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΡΡΠ±ΠΈΡΠ°ΠΉΠΊΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡ ΠΊΠΎΠ΄ Π² Π΅Π΄ΠΈΠ½ Π³ΠΎΠ»ΡΠΌ ΡΠ°ΠΉΠ». Π ΡΠ°ΠΌΠΈΡ ΡΠ°ΠΉΡ ΠΏΡΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΡΠ΅Π΄ΠΈ ΡΠΎΠ·ΠΈ ΡΠ°ΠΉΠ», Π·Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅.
ΠΡΡΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅ Π΄Π° ΡΠ²ΠΈΠ΅ΡΠ΅ ΠΊΠΎΠ΄Π°, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π° Π²Π°ΡΠΈΡ ΠΌΠΎΠ΄ΡΠ» Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ», ΠΏΡΡΠ²ΠΎ Π΄Π° Π·Π°ΡΠ΅Π΄ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π²ΡΠ² ΡΠΎΠ½ΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ° ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ», ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ° Π²Π΅ΡΠ΅ Π·Π°ΡΠ΅Π΄Π΅Π½ΠΈ. Π’ΠΎΠ²Π° Π΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ - Asynchronous Module Definition (AMD).
ΠΠ°ΡΠ°ΡΠ° ΡΡΠΈΠ²ΠΈΠ°Π»Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΡΠ΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ° Π² AMD:
define(["weekDay", "today"], function(weekDay, today) { console.log(weekDay.name(today.dayNumber())); });
Π€ΡΠ½ΠΊΡΠΈΡΡΠ° define Π΅ Π² ΡΠ΅Π½ΡΡΡΠ° Π½Π° ΡΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄. Π’Ρ Π²Π·Π΅ΠΌΠ° ΠΏΡΡΠ²ΠΈΡ ΠΌΠΎΠ΄ΡΠ» Ρ ΠΌΠ°ΡΠΈΠ² ΠΎΡ ΠΈΠΌΠ΅Π½Π° ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΏΡΠΈΠ΅ΠΌΠ° ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π·Π° Π²ΡΡΠΊΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ. Π’Ρ ΡΠ΅ Π·Π°ΡΠ΅Π΄ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅(Π°ΠΊΠΎ ΠΎΡΠ΅ Π½Π΅ ΡΠ° Π·Π°ΡΠ΅Π΄Π΅Π½ΠΈ) Π²ΡΠ² ΡΠΎΠ½ΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π΄Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΡΠ΅Π³Π»ΡΡ. Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ, Π²ΡΠΈΡΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ° Π·Π°ΡΠ΅Π΄Π΅Π½ΠΈ, define ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ° ΡΡΠ½ΠΊΡΠΈΡΡΠ°, ΠΊΠΎΡΡΠΎ ΠΈ Π΅ Π΄Π°Π΄Π΅Π½Π°, Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈΡΠ΅ Π½Π° ΡΠ΅Π·ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠ°ΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ.
ΠΠΎΠ΄ΡΠ»ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π°Ρ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ΄ΡΡΠΆΠ°Ρ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ ΠΊΡΠΌ define. Π‘ΡΠΎΠΉΠ½ΠΎΡΡΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠ΅Ρ
Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΅ ΡΠ°Π·ΠΈ, ΠΊΠΎΡΡΠΎ ΡΠ΅ Π²ΡΡΡΠ° ΠΎΡ ΡΡΠ½ΠΊΡΠΈΡΡΠ° ΠΏΠΎΠ΄Π°Π΄Π΅Π½Π° ΠΊΡΠΌ define. Π‘Π΅Π³Π° ΡΡΠΊΠ° Π΅ ΠΌΠΎΠ΄ΡΠ»ΡΡ weekDay ΠΎΡΠ½ΠΎΠ²ΠΎ:
define([], function() { var names = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; return { name: function(number) { return names[number]; }, number: function(name) { return names.indexOf(name); } }; });
ΠΠ° Π΄Π° ΠΌΠΎΠ³Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° define, ΡΠ΅ ΡΠ΅ ΠΏΡΠ΅ΡΡΡΡΠ²Π°ΠΌΠ΅, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ backgroundReadFile ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π²Π·Π΅ΠΌΠ° ΠΈΠΌΠ΅ Π½Π° ΡΠ°ΠΉΠ» ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° ΡΡΡ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»Π°, Π²Π΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄, ΠΊΠ°ΡΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ. (ΠΠ»Π°Π²Π° 17 ΡΠ΅ Π²ΠΈ ΠΎΠ±ΡΡΠ½Ρ, ΠΊΠ°ΠΊ Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ°ΠΊΠΈΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ.)
ΠΠ° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ° Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ΠΈ, ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° define ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠ±Π΅ΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΠΏΠΈΡΠ²Π°Ρ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΠΈ Π½ΠΈ ΠΊΠ°Π·Π²Π°Ρ Π΄Π°Π»ΠΈ ΡΠ΅ ΡΠ° Π½Π° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ ΡΠ΅Ρ
Π½ΠΈΡ ΠΈΠ½ΡΡΠ΅ΡΠ΅ΠΉΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°.
Π€ΡΠ½ΠΊΡΠΈΡΡΠ° getModule, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈ ΡΠ΅ Π΄Π°Π΄Π΅ ΠΈΠΌΠ΅ ΡΠ΅ Π²ΡΡΠ½Π΅ ΡΠΎΠ·ΠΈ ΠΎΠ±Π΅ΠΊΡ ΠΈ ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΡΡ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΎ Π΅ Π·Π°ΡΠ΅Π΄Π΅Π½. Π’Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ΅Ρ ΠΎΠ±Π΅ΠΊΡ, Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΠΈΡ ΠΌΠΎΠ΄ΡΠ» Π΄Π²Π° ΠΏΡΡΠΈ.
var defineCache = Object.create(null); var currentMod = null; function getModule(name) { if (name in defineCache) return defineCache[name]; var module = {exports: null, loaded: false, onLoad: []}; defineCache[name] = module; backgroundReadFile(name, function(code) { currentMod = module; new Function("", code)(); }); return module; }
ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΠΌΠ΅, ΡΠ΅ Π·Π°ΡΠ΅Π΄Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ» ΡΡΠ΄ΡΡΠΆΠ° ΡΡΡΠΎ ΠΈ (Π΅Π΄Π½ΠΎ) ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ ΠΊΡΠΌ define. ΠΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° currentMod ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π΄Π° ΠΎΡΡΠ°Π·ΠΈ ΡΠΎΠ²Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ ΠΊΡΠΌ ΠΌΠΎΠ΄ΡΠ» ΠΎΠ±Π΅ΠΊΡΠ°, ΠΊΠΎΠΉΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π°, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ° ΡΠΎΠ·ΠΈ ΠΎΠ±Π΅ΠΊΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π·Π°Π²ΡΡΡΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ. ΠΠΈΠ΅ ΡΠ΅ ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ Π½Π° ΡΠΎΠ·ΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΡΠΌ Π² Π΅Π΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ.
Π‘Π°ΠΌΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ define ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° getModule Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ ΠΈΠ»ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ» ΠΎΠ±Π΅ΠΊΡΠΈ Π·Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ΅ΠΊΡΡΠΈΡ ΠΌΠΎΠ΄ΡΠ». ΠΠ΅ΠΉΠ½Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° Π΅ Π΄Π° ΠΏΠ»Π°Π½ΠΈΡΠ° moduleFunction (ΡΡΠ½ΠΊΡΠΈΡΡΠ°, ΠΊΠΎΡΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π°) Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅Π·ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ° Π·Π°ΡΠ΅Π΄Π΅Π½ΠΈ. ΠΠ° ΡΠ°Π·ΠΈ ΡΠ΅Π» ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΡΠ½ΠΊΡΠΈΡΡΠ° whenDepsLoaded, ΠΊΠΎΡΡΠΎ Π΄Π° Π΄ΠΎΠ±Π°Π²Ρ ΠΊΡΠΌ onLoad ΠΌΠ°ΡΠΈΠ²Π° Π²ΡΠΈΡΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠ° Π·Π°ΡΠ΅Π΄Π΅Π½ΠΈ. Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ Π²ΡΡΡΠ° Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ, Π°ΠΊΠΎ ΠΈΠΌΠ° Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅Π·Π°ΡΠ΅Π΄Π΅Π½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° ΡΠ°ΠΌΠΎ Π²Π΅Π΄Π½ΡΠΆ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΏΡΠΈΠΊΠ»ΡΡΠΈ ΡΡΡ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ. Π’Ρ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΎΡ ΡΠ°ΠΌΠΈΡ define Π² ΡΠ»ΡΡΠ°ΠΉ, ΡΠ΅ Π½ΡΠΌΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ Π·Π°ΡΠ΅Π΄Π΅Π½ΠΈ.
function define(depNames, moduleFunction) { var myMod = currentMod; var deps = depNames.map(getModule); deps.forEach(function(mod) { if (!mod.loaded) mod.onLoad.push(whenDepsLoaded); }); function whenDepsLoaded() { if (!deps.every(function(m) { return m.loaded; })) return; var args = deps.map(function(m) { return m.exports; }); var exports = moduleFunction.apply(null, args); if (myMod) { myMod.exports = exports; myMod.loaded = true; myMod.onLoad.forEach(function(f) { f(); }); } } whenDepsLoaded(); }
ΠΠΎΠ³Π°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ° Π½Π° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, whenDepsLoaded ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π΄ΡΡΠΆΠΈ ΠΌΠΎΠ΄ΡΠ»Π°, ΠΊΠ°ΡΠΎ ΠΌΡ Π΄Π°Π²Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅, ΠΊΠ°ΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ.
ΠΡΡΠ²ΠΎΡΠΎ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ define ΠΏΡΠ°Π²ΠΈ Π΅ Π΄Π° ΡΡΡ
ΡΠ°Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ°, ΠΊΠΎΡΡΠΎ currentMod ΠΈΠΌa, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ ΠΈΠ·Π²ΠΈΠΊΠ°Π½ Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° myMod. ΠΠ΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΡΠ΅, ΡΠ΅ getModule ΡΠΎΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΈ ΠΎΡΠ΅Π½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π° Π·Π° ΠΌΠΎΠ΄ΡΠ»Π°, ΡΡΡ
ΡΠ°Π½ΡΠ²Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ ΠΌΠΎΠ΄ΡΠ» ΠΎΠ±Π΅ΠΊΡ Π² currentMod. Π’ΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° whenDepsLoaded Π΄Π° ΡΡΡ
ΡΠ°Π½ΡΠ²Π° Π²ΡΡΠ½Π°Ρa ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° Π² ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ exports Π½Π° ΠΌΠΎΠ΄ΡΠ»Π°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ loaded Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° Π½Π° true ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ°ΠΊΠ°Ρ ΠΌΠΎΠ΄ΡΠ»Π° Π΄Π° ΡΠ΅ Π·Π°ΡΠ΅Π΄ΠΈ.
Π’ΠΎΠ·ΠΈ ΠΊΠΎΠ΄ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΡΡΡΠ΄Π΅Π½ Π·Π° ΡΠ»Π΅Π΄Π²Π°Π½Π΅ ΠΎΡ require ΡΡΠ½ΠΊΡΠΈΡΡΠ°. ΠΠ΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ»Π΅Π΄Π²Π° ΠΏΡΠΎΡΡ, Π½Π°ΡΠ΅ΡΡΠ°Π½ ΠΏΠ»Π°Π½. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π°, ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠ°Ρ Π² Π½ΡΠΊΠ°ΠΊΡΠ² Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ Π² Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π·Π°ΠΌΡΠ³Π»ΡΠ²Π° ΠΏΡΡΡ Π½Π° ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°.
ΠΡΡΠΈΠ½ΡΠΊΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° AMD, Π΅ Π΄ΠΎΡΡΠ° ΠΏΠΎ-ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΎ ΠΏΡΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΊΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ URL Π°Π΄ΡΠ΅ΡΠΈ ΠΈ ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ ΠΏΠΎ-ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΠΎΠ²Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎ-ΡΠ°Π½ΠΎ. RequireJS (requirejs.org) ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΡΡΠΈΠ» Π·Π° ΠΌΠΎΠ΄ΡΠ»Π½ΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄ΠΈΠ·Π°ΠΉΠ½
ΠΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ Π·Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΠΎΠ±Π΅ΠΊΡΠΈ Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΠΉ-ΡΠΈΠ½ΠΈΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΠΈ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ΡΠΎ. ΠΡΡΠΊΠΎ Π½Π΅ ΡΡΠΈΠ²ΠΈΠ°Π»Π½ΠΎ ΠΏΠ°ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ° ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ. ΠΠ°ΠΌΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½Π°ΡΠΈΠ½, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΎΠ±ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΡΠΎΠ½ΠΈΡΠ°ΡΠ΅Π»Π½ΠΎΡΡ ΠΈ Π΄Π°Π»Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ.
ΠΠ°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΡ Π½Π°ΡΠΈΠ½ Π·Π° Π½Π°ΡΡΠ°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠ±ΡΠΈΡ Π΄ΠΈΠ·Π°ΠΉΠ½ Π·Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ, Π½ΡΠΊΠΎΠΈ Π΄ΠΎΠ±ΡΠΈ, Π½ΡΠΊΠΎΠΈ Π»ΠΎΡΠΈ. ΠΠΏΠΈΡΡΡ ΡΠ΅ Π²ΠΈ Π½Π°ΡΡΠΈ, ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ°Π±ΠΎΡΠΈ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π½Π΅. ΠΠΈΠΊΠΎΠ³Π° Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°ΠΉΡΠ΅, ΡΠ΅ ΡΡΡΠ΄Π½ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΅ βΡΠ°ΠΊΡΠ², ΠΊΠ°ΠΊΡΠ²ΡΠΎ Π΅β. ΠΠΎΠΏΡΠ°Π²Π΅ΡΠ΅ Π³ΠΎ ΠΈΠ»ΠΈ Π³ΠΎ ΡΠ²ΠΈΠΉΡΠ΅ Π² Π½ΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅.
ΠΡΠ΅Π΄Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ
ΠΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΠ°Ρ Π½Π°ΡΠΈΠ½Π° Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΠ΅ (ΠΈΠ»ΠΈ Π²ΠΈΠ΅) Π½ΡΠΌΠ° Π΄Π° ΡΠ΅ ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ²Π°Ρ ΠΎΡ ΡΠ΅Π»ΡΠ° ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΠ΅ΡΡΠΎ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° Π΄Π° ΡΡΡΡΡΡ, ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°Ρ Π΄Π° ΡΠ»Π΅Π΄Π²Π°Ρ ΠΊΠΎΠ½Π²Π΅Π½ΡΠΈΠΈ. ΠΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ° Π΄ΡΡΠ³ ΠΌΠΎΠ΄ΡΠ» ΠΈΠ»ΠΈ ΡΠ°ΡΡ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π° JavaScript ΡΡΠ΅Π΄Π°, ΠΊΠΎΡΡΠΎ ΠΏΡΠ°Π²ΠΈ Π½Π΅ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅, ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π΅ Π΄ΠΎΠ±ΡΠ° ΠΈΠ΄Π΅Ρ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π²Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, ΡΠ΅ ΡΠ΅ ΠΏΠΎΡΡΠ²ΡΡΠ²Π°ΡΠ΅ Π±Π»ΠΈΠ·ΠΊΠΈ Ρ Ρ ΠΎΡΠ°, ΠΊΠΎΠΈΡΠΎ Π·Π½Π°ΡΡ Π·Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
ΠΡΡΠ³Π° ΠΎΠ±Π»Π°ΡΡ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΡΡΠ° Π΅ Π²Π°ΠΆΠ½Π° Π·Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° Π²Π°ΡΠΈΡ ΠΊΠΎΠ΄. ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΊΡΡΠΈΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π½Π΅Π½ΡΠΆΠ½ΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΡΠΎ, ΡΠ΅ Π΅ ΠΏΠΎ-ΡΠ΄ΠΎΠ±Π΅Π½ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΎΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ, Π·Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ βΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎΡΠΎβ Π½Π΅ΡΠΎ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΡ . ΠΠ»ΠΈ ΠΏΡΠΊ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Ρ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π²ΠΊΡΡ, ΠΊΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»Π°. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΊΠΎΠ΄Π°, Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π²Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΠΊΡΠ°ΡΡΠΊ, Π½ΠΎ ΡΡΡΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΡΡΡΠ΄Π΅Π½ Π·Π° Ρ ΠΎΡΠ°ΡΠ°, ΠΊΠΎΠΈΡΠΎ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΡΡ ΠΏΠΎ-ΡΡΠ΅Π½ ΡΠΌΠΈΡΠ»Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π°.
Composability
ΠΡΠ² Π²Π°ΡΠΈΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΉΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΈΡΠ΅ ΡΡΡΡΠΊΡΡΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ, Π°ΠΊΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½Π°ΠΏΡΠ°Π²Π΅ΡΠ΅ Π²Π°ΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π° ΠΏΡΠ°Π²ΡΡ Π΅Π΄Π½ΠΎ, ΡΡΠ½ΠΎ Π½Π΅ΡΠΎ. ΠΠΈΠ½Π°Π³ΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΠΈΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ (Π²ΠΈΠΆ ΠΠ»Π°Π²Π° 3).
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ Π΅ Π½Π΅ΠΎΠ±ΠΈΡΠ°ΠΉΠ½ΠΎ Π·Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΌΠ°ΡΠΈΠ², ΠΊΠ°ΡΠΎ ΠΎΠ±Π΅ΠΊΡ - ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡ, ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΠΏΡΠ΅Π±ΡΠΎΡΠ²Π°Π½Π΅ ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ. Π’Π°ΠΊΠΈΠ²Π° ΠΎΠ±Π΅ΠΊΡΠΈ Π½ΡΠΌΠ°Ρ map ΠΈ forEach ΠΌΠ΅ΡΠΎΠ΄ΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π²ΡΠΈΡΠΊΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ°ΠΊΠ²Π° ΠΈΡΡΠΈΠ½ΠΊΠΈΡ ΠΌΠ°ΡΠΈΠ² ΠΈ Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Ρ ΡΡΡ
. Π’ΠΎΠ²Π° Π΅ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° Π»ΠΎΡΠ° composability (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΠΎΡΡ) - ΠΌΠΎΠ΄ΡΠ»ΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π»Π΅ΡΠ½ΠΎ ΡΡΡΡΠ°Π²Π΅Π½ Ρ Π΄ΡΡΠ³ ΠΊΠΎΠ΄.
ΠΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΌΠΎΠ΄ΡΠ» Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΡΠ°Π²ΠΎΠΏΠΈΡΠ° Π½Π° ΡΠ΅ΠΊΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½ΠΈ ΠΏΠΎΡΡΡΠ±Π²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠΎΠ² ΡΠ΅Π΄Π°ΠΊΡΠΎΡ. ΠΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠ°Π²ΠΎΠΏΠΈΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π²ΡΡΡ Ρ ΡΠ»ΠΎΠΆΠ½ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π° Π²ΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΡΠΎΠ·ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, Π·Π° Π΄Π° ΠΈΠΌΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΈΠ·Π±ΠΎΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° ΠΏΡΠ°Π²ΠΎΠΏΠΈΡΠ°. ΠΠΊΠΎ Π²ΡΡΠ²ΠΈΠΌ ΠΏΠΎ ΡΠΎΠ·ΠΈ ΠΏΡΡ, ΠΌΠΎΠ΄ΡΠ»ΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ. ΠΡ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π°, Π°ΠΊΠΎ Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠΌΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΡΠ°Π²ΠΎΠΏΠΈΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄Π°Π΄Π΅ΠΌ Π½Π° ΠΏΡΠΎΡΡ string ΠΈ ΡΠΎΠΉ Π΄Π° Π²ΡΡΠ½Π΅ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² ΡΠΎΠ·ΠΈ string, ΠΊΡΠ΄Π΅ΡΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΠΈΠΌΠ° ΠΏΡΠ°Π²ΠΎΠΏΠΈΡΠ½Π° Π³ΡΠ΅ΡΠΊΠ°, Π·Π°Π΅Π΄Π½ΠΎ Ρ ΠΌΠ°ΡΠΈΠ² ΠΎΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ, ΡΠΎΠ³Π°Π²Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π² ΡΡΡΡΠ°Π²Π° Π½Π° Π΄ΡΡΠ³ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, Π·Π°ΡΠΎΡΠΎ strings ΠΈ ΠΌΠ°ΡΠΈΠ²ΠΈ ΡΠ° Π²ΠΈΠ½Π°Π³ΠΈ Π½Π° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² JavaScript.
Π‘Π»ΠΎΠ΅Π²Π΅ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ
ΠΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½Π° ΡΠ°ΡΡ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ - Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π΅Π»Π΅ΠΊΡΡΠΎΠ½Π½Π° ΠΏΠΎΡΠ° - ΡΠ΅ΡΡΠΎ ΡΠ΅ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°ΡΠ΅ Ρ Π΅Π΄Π½Π° Π΄ΠΈΠ»Π΅ΠΌΠ°. ΠΡ Π΅Π΄Π½Π° ΡΡΡΠ°Π½Π° Π½Π΅ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΏΡΠ΅ΡΠΎΠ²Π°ΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π½Π° Π²Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ. Π’ΠΎΠΉ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠΈ Π²Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ 20 ΠΌΠΈΠ½ΡΡΠΈ, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈ ΠΈΠΌΠ΅ΠΉΠ». ΠΡ Π΄ΡΡΠ³Π° ΡΡΠ°ΡΠ°Π½Π°, Π²ΠΈΠ΅ Π½Π΅ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΡΠΊΡΠΈΠ΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Π΄Π΅ΡΠ°ΠΉΠ»ΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ Ρ ΠΎΡΠ°ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ°Π²ΡΡ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΈ Π½Π΅ΡΠ° Ρ Π²Π°ΡΠΈΡ ΠΌΠΎΠ΄ΡΠ», ΡΠΎΠΉ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π² ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π·Π° ΡΠΎΠ²Π°.
Π§Π΅ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΡΡ Π΄Π²Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°: Π΅Π΄ΠΈΠ½ ΠΏΠΎΠ΄ΡΠΎΠ±Π΅Π½ Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ Π·Π° ΡΠ»ΠΎΠΆΠ½ΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈ Π΅Π΄ΠΈΠ½ Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π·Π° ΡΡΡΠΈΠ½Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°. ΠΡΠΎΡΠΈΡ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π»Π΅ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΠ° Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΠΎΡ ΠΏΡΡΠ²ΠΈΡ. Π ΠΌΠΎΠ΄ΡΠ»Π° Π·Π° ΠΏΠΎΡΠ°, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π·Π° Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π±ΠΈ ΠΌΠΎΠ³ΡΠ» Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡ, Ρ ΠΊΠΎΡΡΠΎ ΡΡΠΎΠ±ΡΠ°Π²Π° Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠ΅Π»Ρ ΠΈ Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΈΠΌΠ΅ΠΉΠ». ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π·Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ ΠΏΡΠ»Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π°Π΄ ΠΏΠΎΡΠ°ΡΠ°: Π·Π°Π³Π»Π°Π²ΠΈΠ΅, ΠΏΡΠΈΠΊΠ°ΡΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, HTML ΠΏΠΎΡΠ° ΠΈ Ρ.Π½.
Π Π΅Π·ΡΠΌΠ΅
ΠΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΡΡΡΡΠΊΡΡΡΠ° Π·Π° ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΡΡΠ΅Π· ΠΎΡΠ΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ namespaces. ΠΠ°Π²Π°ΠΉΠΊΠΈ Π½Π° ΡΠ΅Π·ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄ΠΎΠ±ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ Π³ΠΈ ΠΏΡΠ°Π²ΠΈ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΈ ΠΏΡΠ΅ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΈ Π΄Π°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ ΠΈΠΌ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΡ Π΅Π²ΠΎΠ»ΡΠΈΡΠ°.
ΠΡΠΏΡΠ΅ΠΊΠΈ, ΡΠ΅ Π΅Π·ΠΈΠΊΠ° Π½Π° JavaScript Π΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΠΎ Π±Π΅Π·ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π³ΡΠ²ΠΊΠ°Π²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠΎΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π΄Π°Π²Π°Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΏΠΎ-ΡΠΊΠΎΡΠΎ Ρ ΡΠ±Π°Π²ΠΈ ΠΌΠΎΠ΄ΡΠ»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΠ±Ρ Π²Π°ΡΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, ΠΊΠ°ΡΠΎ Π²ΡΡΡΠ΅ΡΠ½ΠΈ namespaces Π·Π° ΠΌΠΎΠ΄ΡΠ»Π°, Π° ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°Π±ΠΎΡΠ° ΠΎΡ Π΅ΠΊΡΠΏΠΎΡΡΠ½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ.
ΠΠΌΠ° Π΄Π²Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ Π΄ΠΎΠ±ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π° ΠΊΡΠΌ ΡΠ°ΠΊΠΈΠ²Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠ΄ΠΈΠ½ΠΈΡΡ ΡΠ΅ Π½Π°ΡΠΈΡΠ° CommonJS Modules ΠΈ ΡΠ΅ Π²ΡΡΡΠΈ ΠΎΠΊΠΎΠ»ΠΎ require ΡΡΠ½ΠΊΡΠΈΡΡΠ°, ΠΊΠΎΡΡΠΎ ΠΈΠ·Π²Π»ΠΈΡΠ° ΠΌΠΎΠ΄ΡΠ» ΠΏΠΎ ΠΈΠΌΠ΅ ΠΈ Π²ΡΡΡΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΌΡ. ΠΡΡΠ³Π°ΡΠ° ΡΠ΅ Π½Π°ΡΠΈΡΠ° AMD ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° define ΡΡΠ½ΠΊΡΠΈΡΡΠ°, ΠΊΠΎΡΡΠΎ Π²Π·Π΅ΠΌΠ° ΠΌΠ°ΡΠΈΠ² Ρ ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈ ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π·Π°ΡΠ΅Π΄ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ Ρ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ, ΠΊΠ°ΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ
ΠΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΠΌΠ΅ΡΠ΅ΡΠ°
ΠΠ°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΏΡΠΎΡΡ ΠΌΠΎΠ΄ΡΠ» ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° weekDay, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° ΡΠΈΡΠ»Π°ΡΠ° Π½Π° ΠΌΠ΅ΡΠ΅ΡΠ° (Ρ Π½ΡΠ»Π΅Π²Π° Π±Π°Π·Π°, ΠΊΠ°ΡΠΎ Π² ΡΠΈΠΏΠ° Date) Π² ΠΈΠΌΠ΅Π½Π° ΠΈ ΠΈΠΌΠ΅Π½Π°ΡΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΠΈΡΠ»Π°. ΠΠ°ΠΉΡΠ΅ ΠΌΡ ΡΠ²ΠΎΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ namespace, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΠΎΡ Π²ΡΡΡΠ΅ΡΠ΅Π½ ΠΌΠ°ΡΠΈΠ² Ρ ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΠΌΠ΅ΡΠ΅ΡΠΈΡΠ΅ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ JavaScript, Π±Π΅Π· Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°.
// Your code here. console.log(month.name(2)); // β March console.log(month.number("November")); // β 10
Π’ΠΎΠ²Π° Π΅ ΠΏΠΎΡΡΠΈ ΡΠΎΡΠ½ΠΎ ΡΠ»Π΅Π΄Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° weekDay. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡ ΠΈΠ·ΡΠ°Π· ΠΈΠ·Π²ΠΈΠΊΠ°Π½ Π²Π΅Π΄Π½Π°Π³Π°, ΠΎΠΏΠ°ΠΊΠΎΠ²Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ°, ΠΊΠΎΡΡΠΎ Π΄ΡΡΠΆΠΈ ΠΌΠ°ΡΠΈΠ²Π° Ρ ΠΈΠΌΠ΅Π½Π°ΡΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ°Ρ. Π€ΡΠ½ΠΊΡΠΈΠΈΡΠ΅ ΡΠ° ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π² Π΅Π΄ΠΈΠ½ ΠΎΠ±Π΅ΠΊΡ ΠΈ ΡΠ΅ Π²ΡΡΡΠ°Ρ. ΠΡΡΠ½Π°ΡΠΈΡ ΠΎΠ±Π΅ΠΊΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° month.
ΠΡΡΡΠ°Π½Π΅ ΠΊΡΠΌ Π΅Π»Π΅ΠΊΡΡΠΎΠ½Π½ΠΈΡ ΠΆΠΈΠ²ΠΎΡ
ΠΠ°Π΄ΡΠ²Π°ΠΌ ΡΠ΅, ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½ΡΡ Π·Π° Chapter 7 Π΅ ΠΎΡΠ΅ ΠΏΡΠ΅ΡΠ΅Π½ Π² ΡΡΠ·Π½Π°Π½ΠΈΠ΅ΡΠΎ Π²ΠΈ, Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π° Π² ΡΠ°Π·ΠΈ Π³Π»Π°Π²Π° ΠΈ Π΄Π° ΠΈΠ·Π»Π΅Π·Π΅ΠΌ Ρ Π½Π°ΡΠΈΠ½ Π·Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π² ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠ° Π΄Π° ΠΎΡΠ²Π΅ΠΆΠΈΠΌ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΡΠΈ, ΡΠΎΠ²Π° ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π² ΡΠ°Π·ΠΈ Π³Π»Π°Π²Π° ΠΏΠΎ ΡΠ΅Π΄Π° Π½Π° ΠΏΠΎΡΠ²ΡΠ²Π°Π½Π΅ΡΠΎ ΠΈΠΌ:
Vector Grid directions directionNames randomElement BouncingCritter elementFromChar World charFromElement Wall View WallFollower dirPlus LifelikeWorld Plant PlantEater SmartPlantEater Tiger
ΠΠ΅ ΠΏΡΠ΅ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°ΠΉΡΠ΅ ΠΈ Π½Π΅ ΡΡΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠ΄Π½Π° ΠΊΠ½ΠΈΠ³Π°, ΠΊΠΎΡΡΠΎ Π·Π°ΠΏΠΎΡΠ²Π° Π½ΠΎΠ²Π° Π³Π»Π°Π²Π° Π½Π° Π²ΡΡΠΊΠ° ΡΡΡΠ°Π½ΠΈΡΠ°, Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠ΅ Π²ΠΈ ΡΠ΅ ΠΊΠ°ΡΠΈ Π½Π° Π½Π΅ΡΠ²ΠΈΡΠ΅, Π΄ΠΎΡΠΈ ΠΈ ΡΠ°ΠΌΠΎ Π·Π°ΡΠ°Π΄ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π³ΡΠ±ΠΈ ΠΎΡ Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π³Π»Π°Π²ΠΈΡ. ΠΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½, Π΄Π° ΠΎΡΠ²Π°ΡΡΡΠ΅ 10 ΡΠ°ΠΉΠ»Π°, Π·Π° Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΠ΅ΠΊΡ, Π½Π΅ Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. Π¦Π΅Π»ΡΠ° Π²ΠΈ Π΅ ΠΎΡ 3 Π΄ΠΎ 5 ΠΌΠΎΠ΄ΡΠ»Π°.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅, Π½ΡΠΊΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π° ΡΡΠ°Π½Π°Ρ Π²ΡΡΡΠ΅ΡΠ½ΠΈ Π·Π° ΡΠ΅Ρ Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ» ΠΈ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° Π΄ΡΡΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
ΠΡΠΌΠ° ΠΏΡΠ°Π²ΠΈΠ»Π΅Π½ ΠΎΡΠ³ΠΎΠ²ΠΎΡ ΡΡΠΊΠ°. ΠΠΎΠ΄ΡΠ»Π½Π°ΡΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎ Π³ΠΎΠ»ΡΠΌΠ° ΡΡΠ΅ΠΏΠ΅Π½ Π΅ Π²ΡΠΏΡΠΎΡ Π½Π° Π²ΠΊΡΡ.
ΠΡΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠ·ΠΌΠΈΡΠ»ΠΈΡ . Π‘Π»ΠΎΠΆΠΈΠ» ΡΡΠΌ ΡΠΊΠΎΠ±ΠΈ ΠΎΠΊΠΎΠ»ΠΎ Π²ΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
Module "grid" Vector Grid directions directionNames Module "world" (randomElement) (elementFromChar) (charFromElement) View World LifelikeWorld directions [reexported] Module "simple_ecosystem" (randomElement) [duplicated] (dirPlus) Wall BouncingCritter WallFollower Module "ecosystem" Wall [duplicated] Plant PlantEater SmartPlantEater Tiger
ΠΠ· ΠΈΠΌΠ°ΠΌ ΡΠ΅Π΅ΠΊΡΠΏΠΎΡΡ Π½Π° directions ΠΌΠ°ΡΠΈΠ²Π° ΠΎΡ grid ΠΌΠΎΠ΄ΡΠ»Π° ΠΎΡ world, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π° (Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°) Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°ΡΡ ΠΈΠ»ΠΈ ΡΠ΅ ΠΏΡΠΈΡΠ΅ΡΠ½ΡΠ²Π°Ρ Π·Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π°
grid ΠΌΠΎΠ΄ΡΠ».
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ°, Π΄ΡΠ±Π»ΠΈΡΠ°ΠΌ Π΄Π²Π΅ ΠΎΠ±ΡΠΈ ΠΈ ΠΌΠ°Π»ΠΊΠΈ ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ (randomElement and Wall), ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΊΠ°ΡΠΎ Π²ΡΡΡΠ΅ΡΠ½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΈ ΠΈ Π½Π΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΠΊΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈΡΠ΅ Π·Π° ΡΠ΅Π·ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
ΠΡΡΠ³ΠΎΠ²ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
Π‘Π»ΠΎΠΆΠ½Π° ΡΠ΅ΠΌΠ° Π² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ° ΠΊΡΡΠ³ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΌΠΎΠ΄ΡΠ» Π Π·Π°Π²ΠΈΡΠΈ ΠΎΡ Π ΠΈ Π ΡΡΡΠΎ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ Π. ΠΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΏΡΠΎΡΡΠΎ Π·Π°Π±ΡΠ°Π½ΡΠ²Π°Ρ ΡΠΎΠ²Π°. CommonJS ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΡΠΎΡΠΌΠ°: ΡΡ ΡΠ°Π±ΠΎΡΠΈ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π΄ΡΠ»Π³ΠΎ Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅, Π΄ΠΎΠΊΠ°ΡΠΎ Π½Π΅ Π·Π°ΠΌΠ΅Π½ΠΈ ΡΠ΅Ρ
Π½ΠΈΡ exports ΠΎΠ±Π΅ΠΊΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Ρ Π΄ΡΡΠ³Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²ΡΠ΅ΠΊΠΈ Π΄ΡΡΠ³ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ°ΠΌΠΎ, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π·Π°Π²ΡΡΡΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ.
Π‘Π΅ΡΠ°ΡΠ΅ Π»ΠΈ ΡΠ΅ Π·Π° Π½Π°ΡΠΈΠ½, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈ ΠΏΠΎΠ΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ? ΠΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ Π½Π°Π·Π°Π΄ ΠΊΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° require ΠΈ ΠΏΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ ΠΊΠ°ΠΊΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ, Π·Π° Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΠ΅ ΡΠΎΠ²Π°.
ΠΠΎΠΌΠ΅ΡΡΡ Π΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ exports ΠΎΠ±Π΅ΠΊΡ, ΡΡΠ·Π΄Π°Π΄Π΅Π½ Π·Π° ΠΌΠΎΠ΄ΡΠ» ΠΊΡΠΌ require ΠΊΠ΅ΡΠ°, ΠΏΡΠ΅Π΄ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π°. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Π° Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ ΠΈΠΌΠ°Π» ΡΠ°Π½Ρ Π΄Π° ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ΅ module.exports, ΡΠ°ΠΊΠ° ΡΠ΅ Π½ΠΈΠ΅ Π½Π΅ Π·Π½Π°Π΅ΠΌ Π΄Π°Π»ΠΈ ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΡΠΊΠ° Π΄Π° ΠΈΠ·Π½Π°ΡΡ Π½ΡΠΊΠ°ΠΊΠ²Π° Π΄ΡΡΠ³Π° ΡΡoΠΉΠ½ΠΎΡΡ. Π‘Π»Π΅Π΄ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ, ΠΊΠ΅ΡΠ° Π½Π° ΠΎΠ±Π΅ΠΊΡΠ° Π΅ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π½ ΠΎΡ module.exports, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°Π·Π»ΠΈΡΠ½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ.
ΠΠΎ Π°ΠΊΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° Π΅ Π·Π°ΡΠ΅Π΄Π΅Π½ Π²ΡΠΎΡΠΈ ΠΌΠΎΠ΄ΡΠ», ΡΠΎΠΉ ΡΠ΅ ΠΏΠΈΡΠ° Π·Π° ΠΏΡΡΠ²ΠΈΡ ΠΌΠΎΠ΄ΡΠ» Π·Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ exports ΠΎΠ±Π΅ΠΊΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, ΠΊΠΎΠΉΡΠΎ Π½Π°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΅ ΠΏΡΠ°Π·Π΅Π½ Π² ΡΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ Π² ΠΊΠ΅ΡΠ°, Π° Π²ΡΠΎΡΠΈΡ ΠΌΠΎΠ΄ΡΠ» ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ ΠΏΡΠ΅ΠΏΡΠ°ΡΠΊΠ° ΠΊΡΠΌ Π½Π΅Π³ΠΎ. ΠΠΊΠΎ ΡΠΎΠΉ Π½Π΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ Π½Π΅ΡΠΎ Ρ ΡΠΎΠ·ΠΈ ΠΎΠ±Π΅ΠΊΡ Π΄ΠΎ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΡΠ²ΠΈΡ ΠΌΠΎΠ΄ΡΠ», Π½Π΅ΡΠ°ΡΠ° ΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ.