рдЬреЗрдПрд╕ рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди: рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрд░рд┐рдПрд╢рди рдкреИрдЯрд░реНрди

рддреЛ, рдЦрд╛рдмрд░реЛрд╡рд╕реНрдХ рдирд╛рдЧрд░рд┐рдХ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдУрдЯрд╕ рдореЗрдВ рдЗрд╕ рдЧреБрд░реБрд╡рд╛рд░ рдХреЛ "рдлреБрд▓рд╕реНрдЯреИрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрд╡рд▓рдкрд░" рдкрд╛рдареНрдпрдХреНрд░рдо рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдЖрдЬ рд╣рдо рдЖрдкрдХреЗ рд╕рд╛рде рдкрд╛рдареНрдпрдХреНрд░рдо рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреНрдпрд╛рд╢рд╛ рдореЗрдВ рдПрдХ рдФрд░ рд▓реЗрдЦрдХ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред



рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ: рдкрд╛рд╡реЗрд▓ рдпрд╛рдХреВрдкреЛрд╡


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

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

рдЖрдЗрдП рдЬрд▓реНрджреА рд╕реЗ рдореБрдЦреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдкрд░ рдЬрд╛рдПрдВ:

рдирд┐рд░реНрдорд╛рдг рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди


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

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


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

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


рдЗрд╕ рддрд░рд╣ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╡рд┐рднрд┐рдиреНрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдореЗрдВ рдХрдорд╛рдВрдбрд░, Iterator, рдордзреНрдпрд╕реНрде, рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ, рд░рд╛рдЬреНрдп рдкреИрдЯрд░реНрди, рд░рдгрдиреАрддрд┐ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

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

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


рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реБрдЖ, рдЗрд╕рд▓рд┐рдП рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдиреИрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рднрд╛рд╖рд╛ рдиреЗ рдЗрд╕ рддрд░рд╣ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдХреЗ рдкреНрд░рджреВрд╖рдг (рдФрд░ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рдЬреИрд╕реЗ рдХрд┐ C # рдпрд╛ C ++ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛) рдРрд╕реЗ рдирд╛рдо рд╕реНрдерд╛рди рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдб рдХреЛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдмрдирд╛рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдиреНрд╣реЗрдВ рдЕрдиреНрдп рдЯреАрдореЛрдВ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдорд╛рдирд╡-рдШрдВрдЯреЗ рдХрд╛ рдЕрдзрд┐рдХ рд╕рдХреНрд╖рдо рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЕрдкрдиреЗ рдкреВрд░реЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдореЙрдбреНрдпреВрд▓ (рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ES5 рдореЗрдВ рдЗрд╕рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛) IIFE (рддреБрд░рдВрдд рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред

рдпрд╣рд╛рдБ "рдореЙрдбреНрдпреВрд▓" рдкреИрдЯрд░реНрди рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

const first_Module = (function() { let Surname = "Ivanov"; let Nickname = "isakura313"; function declare_Surname() { console.log(Surname); } return { declare_Nickname: function() { alert(Nickname); } } })(); first_Module.declare_Nickname(); console.log(Surname); //       

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

рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдкреИрдЯрд░реНрди


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

 //     to-do  //,    ,           class ItemDeal { constructor(name, color) { this.name = name; this.color = color; } } //     ,       localStorage  ? let item = new ItemDeal(`${text}`, `${select.value - 1}`); // text -   , a select.value -    let myJson = JSON.stringify(item); //        //localStorage,        //localStorage.setItem(item.name, myJson); 

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


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

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

рдареАрдХ рд╣реИ, рдмрд╕ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╣рдорд╛рд░реЗ рдЯреЗрдХреНрд╕реНрдЯ рдЖрд░рдкреАрдЬреА рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рджрд┐рдЦрд╛рдПрдВ:

 class EnemyFactory{ constructor() { this.createEnemy = function(type) { let enemy; if (type === 'goblin' || type === 'ork') enemy = new Infantry(); else if (type === 'elf') enemy = new Archer(); enemy.attack = function() { return `The ${this._type} is attack`; }; return enemy; }; } } class Infantry { constructor() { this._type = 'goblin'; this.scream = function() { return 'AAAAAAAAA! Za ordu!!!'; }; } } class Archer { constructor() { this._type = 'elf'; this.magic_attack = function() { return 'Magic fog around you! You cant see!!'; }; } } const enemy_army = new EnemyFactory(); let newGoblin = enemy_army.createEnemy('goblin'); let newElf = enemy_army.createEnemy('elf'); console.log(newGoblin.attack()); console.log(newElf.attack()); console.log(newGoblin.scream()); console.log(newElf.magic_attack()); //  

рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкреИрдЯрд░реНрди


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

 //,     to-do  const itemDeal = { colorOfHeader: blue; //     .    ? create() { console.log("our item create"); //  item }, delete() { console.log("our item delete now"); //   item }, }; //     ,  to-do  //  ,   Trello. const newDeal = Object.create(itemDeal, { owner: { value: 'Paul' } }); console.log(newDeal.__proto__ === itemDeal); //true 

рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкреИрдЯрд░реНрди рдЙрдкрдпреЛрдЧреА рд╣реИ рдпрджрд┐ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдпрд╛ рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд▓реЛрдирд░ рдкреИрдЯрд░реНрди


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

 class Hero { constructor(name) { if (Hero.exists) { return Hero.instance; } this._name = name; Hero.instance = this; Hero.exists = true; return this; } getName() { return this._name; } setName(name) { this._name = name; } } //    const smolder = new Hero('Smolder!'); console.log(smolder.getName()); // Smolder! const ruby = new Hero('Ruby'); console.log(ruby.getName()); // Smolder! // ,       .         . //            

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

рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ:

developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/create
learn.javascript.ru/class
developer.mozilla.org/ru/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript

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


All Articles