рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди

рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓реЗрдЦрдХ, рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рд╡реЗ рддреБрд░рдВрдд рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рдХреНрд╖реНрдп рдФрд░ рд╕реАрдорд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╡реЗ рдЙрди рдЕрд╡рд╕рд░реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕рдХреЗ рдкрд╛рд╕ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЙрд╕рдХреЗ рдмрд╛рдж, рдпрд╛ рддреЛ рд╡реЗ рддреБрд░рдВрдд рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдпрд╛, рдпрджрд┐ рдпрд╣ рдПрдХ рдЬрдЯрд┐рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рддреЛ рд╡реЗ рдЙрдкрдпреБрдХреНрдд рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕рдХрд╛ рдЖрдзрд╛рд░ рдмрдирд╛рддреЗ рд╣реИрдВред рдпрд╣ рд╕рд╛рдордЧреНрд░реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╢реБрд░реБрдЖрддреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреНрдпрд╛ рд╣реИ?


рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдПрдХ рд░рд┐рдкреАрдЯреЗрдмрд▓ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╕рдВрджрд░реНрдн рдХреЗ рднреАрддрд░ рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЕрдХреНрд╕рд░ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдкреЗрд╢реЗрд╡рд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдЕрдиреБрднрд╡ рдХрд╛ рдПрдХ рд╕рд╛рд░рд╛рдВрд╢ рд╣реИред рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреЛ рдПрдХ рддрд░рд╣ рдХрд╛ рдкреИрдЯрд░реНрди рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВред

рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?


рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдпрд╛ рддреЛ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рд╕рдордп рдХреА рдмрд░реНрдмрд╛рджреА рд╣реИ, рдпрд╛ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдЙрдкрдпреБрдХреНрдд рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреЗрд╣рддрд░ рдФрд░ рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИ, рдЬреЛ рдЗрд╕рдХреА рд╕рдордЭ рдХреЗ рдХрд╛рд░рдг, рдмрдирд╛рдП рд░рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рд╢рд╛рдпрдж, рдпрд╣ рд╣реИ рдХрд┐ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХреБрдЫ рдкреНрд░рд╕рд┐рджреНрдз рд╢рдмреНрджреЛрдВ рдХреЗ рд╢рдмреНрджрдХреЛрд╢ рдХреА рддрд░рд╣ рдХреБрдЫ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдХрд┐рд╕реА рдФрд░ рдХреЗ рдХреЛрдб рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВред рдкреИрдЯрд░реНрди рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдХреБрдЫ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЙрдкрдХрд░рдг рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк "рдбреЗрдХреЛрд░реЗрдЯрд░" рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рддреБрд░рдВрдд рдЙрд╕ рдирдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдЧрд╛, рдЬреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдпрд╛ рдерд╛ рдХрд┐ рдХреМрди рд╕реЗ рдХреЛрдб рд╕реЛрд▓реНрд╡реНрд╕ рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдРрд╕рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рдврд╛рдВрдЪреЗ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдордп рджреЗ рд╕рдХреЗрдЧрд╛ред

рдЕрдм рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХреМрди рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рд╣реИрдВ рдФрд░ рд╡реЗ рдХрд┐рд╕ рд▓рд┐рдП рд╣реИрдВ, рд╣рдо рдЦреБрдж рдкреИрдЯрд░реНрди рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред

рдкреИрдЯрд░реНрди "рдореЙрдбреНрдпреВрд▓"


рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛрдб рдХрд╛ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛрдб рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрд░рд╣ рдХреА рдШрдЯрдирд╛ рдХреЛ рджреГрд╢реНрдпрддрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдкреНрд░рджреВрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрдереНрдп рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдЙрдирдореЗрдВ рдШреЛрд╖рд┐рдд рдЪрд░ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рджреГрд╢реНрдпрддрд╛ рдХреНрд╖реЗрддреНрд░ рдмрдирд╛рддреЗ рд╣реИрдВред рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреЗ рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рддрдВрддреНрд░ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИ рдФрд░ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рд╕реЗ рдмрдВрдзрд╛ рдирд╣реАрдВ рд╣реИред

рдореЙрдбреНрдпреВрд▓ рдХрд┐рд╕реА рднреА рдЖрдзреБрдирд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рдЕрднрд┐рдиреНрди рдЕрдВрдЧ рд╣реИрдВред рд╡реЗ рдХреЛрдб рд╕реНрд╡рдЪреНрдЫрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЛрдб рдХреЛ рд╕рд╛рд░реНрдердХ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ "рдореЙрдбреНрдпреВрд▓" рдкреИрдЯрд░реНрди рд╣реИред

рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рд╕рдВрд╢реЛрдзрдХ рдирд╣реАрдВ рд╣реИрдВред рдЕрд░реНрдерд╛рддреН, рдЪрд░ рдХреЛ рдирд┐рдЬреА рдпрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, "рдореЙрдбреНрдпреВрд▓" рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкреИрдЯрд░реНрди IIFE (рддрддреНрдХрд╛рд▓-рдЗрдирд╡реЙрд▓реНрдб рдлрдВрдХреНрд╢рдирд▓ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди), рдХреНрд▓реЛрдЬрд░ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╕реНрдХреЛрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

const myModule = (function() {   const privateVariable = 'Hello World';   function privateMethod() {    console.log(privateVariable);  }  return {    publicMethod: function() {      privateMethod();    }  } })(); myModule.publicMethod(); 

рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ IIFE рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдб рдХреЛ рддреБрд░рдВрдд рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдирд┐рд░рдВрддрд░ myModule рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдПрдХ рдмрдВрдж рд╣реИ, рд▓реМрдЯреА рд╣реБрдИ рд╡рд╕реНрддреБ рдХреЛ рдЖрдИрдЖрдИрдПрдлрдИ рдХреЗ рдЕрдВрджрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЪрд░ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рднреА рдЬрдм рдЖрдИрдЖрдИрдПрдлрдИ рдЕрдкрдирд╛ рдХрд╛рдо рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдирддреАрдЬрддрди, IIFE рдХреЗ рдЕрдВрджрд░ рдШреЛрд╖рд┐рдд рдЪрд░ рдФрд░ рдХрд╛рд░реНрдп рдЙрди рддрдВрддреНрд░реЛрдВ рд╕реЗ рдЫрд┐рдкреЗ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЙрдирдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА рджреГрд╢реНрдпрддрд╛ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВред рд╡реЗ myModule рдирд┐рд░рдВрддрд░ рдХреА рдирд┐рдЬреА рд╕рдВрд╕реНрдерд╛рдПрдБ myModule ред

рдпрд╣ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, myModule рдЗрд╕ рддрд░рд╣ myModule рджреЗрдЧрд╛:

 const myModule = { publicMethod: function() {   privateMethod(); }}; 

рдпрд╣реА рд╣реИ, рдЗрд╕ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рдзрд┐ publicMethod() рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдирд┐рдЬреА рд╡рд┐рдзрд┐ рдХреЛ privateMethod() ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 //  'Hello World' module.publicMethod(); 

рдореЙрдбреНрдпреВрд▓ рдкреИрдЯрд░реНрди рдЦреЛрд▓реЗрдВ


рд░рд┐рд╡реАрд▓рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдкреИрдЯрд░реНрди рдореЙрдбреНрдпреВрд▓ рдкреИрдЯрд░реНрди рдХрд╛ рдереЛрдбрд╝рд╛ рдЙрдиреНрдирдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬрд┐рд╕реЗ рдХреНрд░рд┐рд╢реНрдЪрд┐рдпрди рд╣реАрд▓рдореИрди рдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред "рдореЙрдбреНрдпреВрд▓" рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдирд┐рдЬреА рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЪрд░ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рд╣реЛрдВрдЧреЗред

рдЗрд╕ рдкреИрдЯрд░реНрди рдореЗрдВ, рд╣рдо рд▓реМрдЯреЗ рд╣реБрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдЬреА рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕реАрд▓рд┐рдП рдЗрд╕ рдкреИрдЯрд░реНрди рдХреЛ "рдУрдкрди рдореЙрдбреНрдпреВрд▓" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 const myRevealingModule = (function() { let privateVar = 'Peter'; const publicVar  = 'Hello World'; function privateFunction() {   console.log('Name: '+ privateVar); } function publicSetName(name) {   privateVar = name; } function publicGetName() {   privateFunction(); } /**    ,     */ return {   setName: publicSetName,   greeting: publicVar,   getName: publicGetName }; })(); myRevealingModule.setName('Mark'); //  Name: Mark myRevealingModule.getName(); 

рдЗрд╕ рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХреМрди рд╕реЗ рдХрд╛рд░реНрдп рдФрд░ рдЪрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЬреЛ рдХреЛрдб рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

IIFE рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, myRevealingModule рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 const myRevealingModule = { setName: publicSetName, greeting: publicVar, getName: publicGetName }; 

рд╣рдо, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, myRevealingModule.setName('Mark') рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ publicSetName рдЖрдВрддрд░рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реИред myRevealingModule.getName() рд╡рд┐рдзрд┐ рдЖрдВрддрд░рд┐рдХ рдлрд╝рдВрдХреНрд╢рди publicGetName рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд publicGetName ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 myRevealingModule.setName('Mark'); //  Name: Mark myRevealingModule.getName(); 

"рдореЙрдбреНрдпреВрд▓" рдкреИрдЯрд░реНрди рдкрд░ "рдУрдкрди рдореЙрдбреНрдпреВрд▓" рдкреИрдЯрд░реНрди рдХреЗ рд▓рд╛рднреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

  • "рдЦреБрд▓рд╛ рдореЙрдбреНрдпреВрд▓" рдЖрдкрдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЫрд┐рдкреЗ рд╣реБрдП рд╕рдВрд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдЫрд┐рдкрд╛рдПрдВ), рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрди, IIFE рдХреЗ рдмрд╛рдж рд▓реМрдЯреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкрдВрдХреНрддрд┐ред
  • рджреА рдЧрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИред рдЕрдкрдиреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ IIFE рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдХреЛрдб рдХреЛ рд╕рд╛рдл рд░рдЦрдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

ES6 рдореЗрдВ рдореЙрдбреНрдпреВрд▓


ES6 рдорд╛рдирдХ рдЬрд╛рд░реА рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ рдЙрдкрдХрд░рдг рдирд╣реАрдВ рдерд╛, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЙрдЪрд┐рдд рддрдВрддреНрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдпрд╛ "рдореЙрдбреНрдпреВрд▓" рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд▓реЗрдХрд┐рди рдИрдПрд╕ 6 рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рдорд╛рдирдХ рдореЙрдбреНрдпреВрд▓ рдкреНрд░рдгрд╛рд▓реА рджрд┐рдЦрд╛рдИ рджреАред

ES6 рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдВрджрд░ рд╕рдм рдХреБрдЫ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рдЬреА рд╣реИред export рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рдВрдХреНрд╢рдВрд╕, рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдФрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдВрджрд░ рдХреЛрдб рдХреЛ рд╣рдореЗрд╢рд╛ рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

тЦН рдирд┐рд░реНрдпрд╛рдд рдореЙрдбреНрдпреВрд▓


рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рдлрдВрдХреНрд╢рди рдпрд╛ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ:

  • рдлрдВрдХреНрд╢рди рдпрд╛ рд╡реЗрд░рд┐рдПрдмрд▓ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ export рдХреАрд╡рд░реНрдб рдЬреЛрдбрд╝рдХрд░ рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

     // utils.js export const greeting = 'Hello World'; export function sum(num1, num2) { console.log('Sum:', num1, num2); return num1 + num2; } export function subtract(num1, num2) { console.log('Subtract:', num1, num2); return num1 - num2; } //  -   function privateLog() { console.log('Private Function'); } 
  • рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдЪрд░ рдХреЗ рдирд╛рдореЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЗ рдЕрдВрдд рдореЗрдВ export рдХреАрд╡рд░реНрдб рдЬреЛрдбрд╝рдХрд░ export рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

     // utils.js function multiply(num1, num2) { console.log('Multiply:', num1, num2); return num1 * num2; } function divide(num1, num2) { console.log('Divide:', num1, num2); return num1 / num2; } //    function privateLog() { console.log('Private Function'); } export {multiply, divide}; 

тЦНрдЗрдореНрдкреЛрд░реНрдЯ рдореЙрдбреНрдпреВрд▓


рдЬрд┐рд╕ рддрд░рд╣ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ, рдЙрд╕реА рддрд░рд╣ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рднреА рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред рдпрд╣ import рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

  • рдПрдХрд╛рдзрд┐рдХ рдЪрдпрдирд┐рдд рдЖрдЗрдЯрдо рдЖрдпрд╛рдд рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

     // main.js //     import { sum, multiply } from './utils.js'; console.log(sum(3, 7)); console.log(multiply(3, 7)); 
  • рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЖрдпрд╛рдд рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

     // main.js //  ,    import * as utils from './utils.js'; console.log(utils.sum(3, 7)); console.log(utils.multiply(3, 7)); 

рдирд┐рд░реНрдпрд╛рдд рдФрд░ рдЖрдпрд╛рддрд┐рдд рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдирд╛рдо


рдпрджрд┐ рдХреЛрдб рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рдВрд╕ рдпрд╛ рдЪрд░ рдХреЗ рдирд╛рдо рдЯрдХрд░рд╛рд╡ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХреЗ рджреМрд░рд╛рди рдпрд╛ рдЖрдпрд╛рдд рдХреЗ рджреМрд░рд╛рди рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдирд┐рд░реНрдпрд╛рдд рдХреЗ рджреМрд░рд╛рди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 // utils.js function sum(num1, num2) { console.log('Sum:', num1, num2); return num1 + num2; } function multiply(num1, num2) { console.log('Multiply:', num1, num2); return num1 * num2; } export {sum as add, multiply}; 

рдЖрдпрд╛рдд рдХреЗ рджреМрд░рд╛рди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 // main.js import { add, multiply as mult } from './utils.js'; console.log(add(3, 7)); console.log(mult(3, 7)); 

рд╕рд┐рдВрдЧрд▓рдЯрди рдкреИрдЯрд░реНрди


"рд╕рд┐рдВрдЧрд▓рдЯрди" рдпрд╛ "рд╕рд┐рдВрдЧрд▓рдЯрди" рдкреИрдЯрд░реНрди рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдХреЙрдкреА рдореЗрдВ рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддреА рд╣реИред рдЗрд╕ рдкреИрдЯрд░реНрди рдХреЗ рдЖрд╡реЗрджрди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ рдЕрднреА рддрдХ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рд╡рд░реНрдЧ рдЙрджрд╛рд╣рд░рдг рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рддреЛ, рдЬрдм рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рд╕рдВрджрд░реНрдн рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдмрд╛рдж рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рдХреЙрд▓ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рдПрдЧреАред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрд┐рд╕реЗ рд╣рдо "рд╕рд┐рдВрдЧрд▓рдЯрди" рдкреИрдЯрд░реНрди рдХрд╣рддреЗ рд╣реИрдВ, рд╡рд╣ рд╣рдореЗрд╢рд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдЗрд╕реЗ "рд╕рд┐рдВрдЧрд▓рдЯрди" рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ "рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдмреНрджрд┐рдХ" рдХрд╣рддреЗ рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 const user = { name: 'Peter', age: 25, job: 'Teacher', greet: function() {   console.log('Hello!'); } }; 

рдЪреВрдВрдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬрдм рднреА рд╣рдо user рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЙрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд▓рд┐рдВрдХ рдорд┐рд▓рддрд╛ рд╣реИред

рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд┐рдВрдЧрд▓рдЯрди рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 let instance = null; function User(name, age) { if(instance) {   return instance; } instance = this; this.name = name; this.age = age; return instance; } const user1 = new User('Peter', 25); const user2 = new User('Mark', 24); //  true console.log(user1 === user2); 

рдЬрдм рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ instance рдСрдмреНрдЬреЗрдХреНрдЯ рдореМрдЬреВрдж рд╣реИред рдпрджрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдЪрд░ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ this instance рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЪрд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реИ, рддреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗрд╡рд▓ рдПрдХ instance рджреЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрднред

рдПрдХрд▓ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд┐рдВрдЧрд▓рдЯрди рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 const singleton = (function() { let instance; function User(name, age) {   this.name = name;   this.age = age; } return {   getInstance: function(name, age) {     if(!instance) {       instance = new User(name, age);     }     return instance;   } } })(); const user1 = singleton.getInstance('Peter', 24); const user2 = singleton.getInstance('Mark', 26); // prints true console.log(user1 === user2); 

рдпрд╣рд╛рдВ рд╣рдо singleton.getInstance() рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ user рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдпрд╣ рд╡рд┐рдзрд┐ рдмрд╕ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧреАред рдпрджрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдХреЛрдИ рд╡рд╕реНрддреБ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ User рдирд┐рд░реНрдорд╛рддрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЗрд╕рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддрд╛ рд╣реИред

рдлреИрдХреНрдЯрд░реА рдкреИрдЯрд░реНрди


рдлреИрдХреНрдЯреНрд░реА рдкреИрдЯрд░реНрди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлреИрдХреНрдЯреНрд░реА рдореЗрдердбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХрдХреНрд╖рд╛рдУрдВ рдпрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдЗрд╕ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЙрдирдХреА рд░рдЪрдирд╛ рдХреЗ рддрд░реНрдХ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдлрд╝реИрдХреНрдЯрд░реА рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 class Car{ constructor(options) {   this.doors = options.doors || 4;   this.state = options.state || 'brand new';   this.color = options.color || 'white'; } } class Truck { constructor(options) {   this.doors = options.doors || 4;   this.state = options.state || 'used';   this.color = options.color || 'black'; } } class VehicleFactory { createVehicle(options) {   if(options.vehicleType === 'car') {     return new Car(options);   } else if(options.vehicleType === 'truck') {     return new Truck(options);     } } } 

Car рдФрд░ Truck рдХрдХреНрд╖рд╛рдПрдВ рдпрд╣рд╛рдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ, рдЬреЛ рдХреБрдЫ рдорд╛рдирдХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ car рдФрд░ truck рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ VehicleFactory рдХреНрд▓рд╛рд╕ рдХреЛ рднреА рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ vehicleType рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирдИ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдзрд┐ рдореЗрдВ options рд╕рд╛рде рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд▓реМрдЯрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдЗрд╕ рд╕рдм рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 const factory = new VehicleFactory(); const car = factory.createVehicle({ vehicleType: 'car', doors: 4, color: 'silver', state: 'Brand New' }); const truck= factory.createVehicle({ vehicleType: 'truck', doors: 2, color: 'white', state: 'used' }); //  Car {doors: 4, state: "Brand New", color: "silver"} console.log(car); //  Truck {doors: 2, state: "used", color: "white"} console.log(truck); 

рдпрд╣рд╛рдВ VehicleFactory рдХреНрд▓рд╛рд╕ рдХрд╛ factory рдСрдмреНрдЬреЗрдХреНрдЯ VehicleFactory ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк factory.createVehicle() рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ Car рдпрд╛ Truck рдХрдХреНрд╖рд╛рдУрдВ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ car рдпрд╛ truck рд╕реЗрдЯ рдХрд┐рдП рдЧрдП car vehicleType рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде options рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░ vehicleType рд╣реИрдВред

рдбреЗрдХреЛрд░реЗрдЯрд░ рдкреИрдЯрд░реНрди


рдбреЗрдХреЛрд░реЗрдЯрд░ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдореМрдЬреВрджрд╛ рдХрдХреНрд╖рд╛рдУрдВ рдпрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд╕реНрддреБрдУрдВ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдХреБрдЫ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЙрдирдХреА рд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред

рдпрд╣рд╛рдБ рдЗрд╕ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

 function Car(name) { this.name = name; //    this.color = 'White'; } //   ,    const tesla= new Car('Tesla Model 3'); //   -    tesla.setColor = function(color) { this.color = color; } tesla.setPrice = function(price) { this.price = price; } tesla.setColor('black'); tesla.setPrice(49000); //  black console.log(tesla.color); 

рдЖрдЗрдП рдЕрдм рдЗрд╕ рдкреИрдЯрд░реНрди рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдХрд╛рд░реЛрдВ рдХреА рд▓рд╛рдЧрдд рдЙрдирдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рдЙрдирдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдкрд░ред рдбреЗрдХреЛрд░реЗрдЯрд░ рдкреИрдЯрд░реНрди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд┐рдирд╛, рдЗрди рдХрд╛рд░реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрди рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдиреА рд╣реЛрдВрдЧреА, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдХрд╛рд░ рдХреА рд▓рд╛рдЧрдд рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рд╣реЛрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

 class Car() { } class CarWithAC() { } class CarWithAutoTransmission { } class CarWithPowerLocks { } class CarWithACandPowerLocks { } 

рдкреНрд░рд╢реНрди рдореЗрдВ рдкреИрдЯрд░реНрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдк рдореВрд▓ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдПрдХ Car , рд╡рд░реНрдгрди, рдХрд╣рддреЗ рд╣реИрдВ, рдПрдХ рдХрд╛рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреА рд▓рд╛рдЧрдд рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рд░рд╛рд╢рд┐ рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрдХреНрдд рдХреА рдЬрд╛рддреА рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдбреЗрдХреЛрд░реЗрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдИ рдЧрдИ рдорд╛рдирдХ рд╡рд╕реНрддреБ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдорд╛рдирдХ "рдХрд╛рд░" рдХреЛ рдирдП рдЕрд╡рд╕рд░ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреА рдХреАрдордд рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 class Car { constructor() { //   this.cost = function() { return 20000; } } } // - function carWithAC(car) { car.hasAC = true; const prevCost = car.cost(); car.cost = function() {   return prevCost + 500; } } // - function carWithAutoTransmission(car) { car.hasAutoTransmission = true;  const prevCost = car.cost(); car.cost = function() {   return prevCost + 2000; } } // - function carWithPowerLocks(car) { car.hasPowerLocks = true; const prevCost = car.cost(); car.cost = function() {   return prevCost + 500; } } 

рдпрд╣рд╛рдВ рд╣рдо рдкрд╣рд▓реЗ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ Car рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдРрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрд╛рд░реЛрдВ рдХреЛ рдорд╛рдирдХ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рддреА рд╣реИрдВред рдлрд┐рд░ рд╣рдо рдХрдИ рдбреЗрдХреЛрд░реЗрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдмреЗрд╕ Car рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдпреЗ рдлрд╝рдВрдХреНрд╢рди рд╕рдВрдмрдВрдзрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдирдИ рдкреНрд░реЙрдкрд░реНрдЯреА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░ рдХрд┐рд╕ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рд╕реЗ рд▓реИрд╕ рд╣реЛрдЧреА, рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА cost рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдЧреА, рдЬреЛ рдЕрдм рдХрд╛рд░ рдХреА рдирдИ рд▓рд╛рдЧрдд рд▓реМрдЯрд╛рддреА рд╣реИред рдирддреАрдЬрддрди, рдорд╛рдирдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛рд░ рдХреЛ рдХреБрдЫ рдирдП рдХреЗ рд╕рд╛рде "рд▓реИрд╕" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбрд┐рдЬрд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 const car = new Car(); console.log(car.cost()); carWithAC(car); carWithAutoTransmission(car); carWithPowerLocks(car); 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдмреЗрд╣рддрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХрд╛рд░ рдХреА рд▓рд╛рдЧрдд рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 //       console.log(car.cost()); 

рдкрд░рд┐рдгрд╛рдо


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХрдИ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреА рдЬрд╛рдВрдЪ рдХреА, рд▓реЗрдХрд┐рди, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрднреА рднреА рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреИрдЯрд░реНрди рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЬрдмрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдХрд╛ рдЬреНрдЮрд╛рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЙрдирдХрд╛ рдЙрдЪрд┐рдд рдЙрдкрдпреЛрдЧ рднреА рдЙрддрдирд╛ рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдкреИрдЯрд░реНрди рдФрд░ рдЙрдирдХреЗ рдЖрд╡реЗрджрди рдХреЗ рджрд╛рдпрд░реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░, рдЙрд╕рдХреЗ рд╕рд╛рдордиреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдХреЗ, рдпрд╣ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдкреИрдЯрд░реНрди рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЖрдк рдХрд┐рд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?

Source: https://habr.com/ru/post/hi427293/


All Articles