рдХреНрд▓реЛрдЬрд░ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯред рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рдЧрд╛рдирд╛

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

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

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

рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ


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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
//  1 var x = 10; var foo = function() { var y = 20; var bar = function() { var z = 30; return x+y+z; } return bar; } var baz = foo(); console.log(baz()); // 60 


рдЪрд░ x , foo рдФрд░ baz рд╡реИрд╢реНрд╡рд┐рдХ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕реНрдЯреИрдХ рдЧрд╣рд░рд╛рдИ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рд╣рд░ рдЬрдЧрд╣ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред foo рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдХреНрд╖рдг рдореЗрдВ, рд╕реНрдЯреИрдХ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕реНрдерд╛рдиреАрдп рдЪрд░ y рдФрд░ bar рд╕рд╛рде рдПрдХ рдлреНрд░реЗрдо рд╣реЛрддрд╛ рд╣реИ, рдлрд┐рд░, рдЬрдм foo рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдлреНрд░реЗрдо рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ baz рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп - рдХреЗрд╡рд▓ z рд╕рдХреНрд░рд┐рдпрдг рдлреНрд░реЗрдо рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрд╣рд╛рдВ рдорд┐рд▓рддрд╛ рд╣реИ? рд╕реА рднрд╛рд╖рд╛ рдореЗрдВ (рдФрд░ рдЙрд╕рдХреЗ рд╕рднреА рд╡рдВрд╢рдЬ) рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмрд╣реБрдд рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдиреЗрд╕реНрдЯреЗрдб рдХрд╛рд░реНрдпреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдирд┐рд╖рд┐рджреНрдз рд╣реИред рдкрд╛рд╕реНрдХрд▓ рдореЗрдВ, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдиреЗрд╕реНрдЯреЗрдб рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рдЬрдм рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдирд┐рд╡рд╛рд░реНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдХрд╛рд░реНрдп рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреА рд╡рд╕реНрддреБ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЙрдирдХрд╛ рдЕрд░реНрде рдареАрдХ рдпрд╣реА рд╕реНрдерд┐рддрд┐ рд╣реИ ред рдлрд╝рдВрдХреНрд╢рдирд▓ рднрд╛рд╖рд╛рдПрдБ рдЖрдкрдХреЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ (рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдКрдкрд░ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реИ)ред рд╡реЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ?

рдмрд╛рд╣рд░реА рдлрд╝рдВрдХреНрд╢рди foo рд╕реЗ рдиреЗрд╕реНрдЯреЗрдб рдлрдВрдХреНрд╢рди bar рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╕рдордп, foo рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╕реНрдЯреИрдХ рдлреНрд░реЗрдо bar рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдВрджрд░реНрдн рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ baz рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рджреГрд╢реНрдпрддрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирддреА рд╣реИ рдЬреЛ рдХреЙрд▓ рд╕реНрдЯреИрдХ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЧрдарди рддрдВрддреНрд░ рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрд╕ рд╕рд░рд▓реАрдХреГрдд рд╡рд┐рд╡рд░рдг рд╕реЗ рдмрд╣реБрдд рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЪрд░ y рдореМрдЬреВрдж рд╣реИ рдЬрдмрдХрд┐ baz рдореМрдЬреВрдж рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЬрдм foo рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ foo рд▓рд┐рдВрдХ рд╕реНрдЯреИрдХ рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡рд┐рджреНрдпрдорд╛рди рджреГрд╢реНрдпрддрд╛ рдХреА рд╕рднреА рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ рдХреА рд╕рдордЧреНрд░рддрд╛ (рд╡рд░реНрддрдорд╛рди рдирд┐рд╖реНрдкрд╛рджрди рд╕рдВрджрд░реНрдн рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП - рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ) рддреАрди рдЖрдпрд╛рдореА рдкреЗрдбрд╝ рдХреА рддрд░рд╣ рдХреБрдЫ рдмрдирд╛рддреА рд╣реИред рдпрджрд┐ рд╣рдо рдХрдИ рдиреЗрд╕реНрдЯреЗрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЯреНрд░реА рдбрд╛рдЗрд╡рд░реНрдЬ рдХреА рд╢рд╛рдЦрд╛рдПрдБ, рдмрд╛рд╣рд░реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рддреА рд╣реИрдВ, рдФрд░ рдЕрдЧрд░ рд╣рдо рдХрдИ рдмрд╛рд░ рдПрдХреНрд╕рдЯрд░реНрдирд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмреНрд░рд╛рдВрдЪ рдКрдкрд░ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдлреНрд░реА рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреА рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирддреА рд╣реИрдВ:
 //  2 var x = 'I am global!'; var foo = function (y) { var z = 'unchanged'; var getXYZ = function () { return 'x: '+x+' y: '+y+' z: '+z; } var setZ = function(newZ) { z = newZ; } return [getXYZ, setZ]; //   ,      , ? } var a = foo('Alice'); // *1* var b = foo('Bob'); // *2* console.log(a[0]()); // x: I am global! y: Alice z: unchanged a[1]('changed'); // *3* console.log(a[0]()); // x: I am global! y: Alice z: changed *4* console.log(b[0]()); // x: I am global! y: Bob z: unchanged x = 'Everybody can see me!'; // *5* console.log(a[0]()); // x: Everybody can see me! y: Alice z: changed console.log(b[0]()); // x: Everybody can see me! y: Bob z: unchanged 


рдмрд┐рдВрджреБ * 1 * рдкрд░, "рджреГрд╢реНрдпрддрд╛ рдкреЗрдбрд╝" foo рдиреЛрдб рдореЗрдВ рдмрд╛рд╣рд░ рд╢рд╛рдЦрд╛рдПрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рджреЛ рдиреЗрд╕реНрдЯреЗрдб рдлрд╝рдВрдХреНрд╢рди рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред рд╡реЗ рдЪрд░ y рдФрд░ z рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдмрд┐рдВрджреБ * 3 * рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмрд┐рдВрджреБ * 2 * рдкрд░, рд╣рдо рджреВрд╕рд░реА рдмрд╛рд░ рдлрд╝рдВрдХреНрд╢рди foo рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкреЗрдбрд╝ рдмрдврд╝рддрд╛ рд╣реИ - рд╕рднреА рд╕реНрдерд╛рдиреАрдп рдЪрд░ foo рдХреА рдкреНрд░рддрд┐рдпрд╛рдВ foo ред рдЧреНрд░реЗ getXYZ рдФрд░ setZ рдХреЛ рднреА y рдФрд░ z рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреНрд░реЗ foo рдиреЛрдб рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдХрд╛рд▓реЗ foo рдиреЛрдб рд╕реЗ y рдФрд░ z рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ * 4 * рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рджреГрд╢реНрдпрдорд╛рди рдкреЗрдбрд╝ рдХреА рд╕рднреА рдкрддреНрддрд┐рдпреЛрдВ (* 5 *) рдХреЗ рдКрдкрд░ рдЪрд░ x рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдордп, рд╣рдо рднрд╡рд┐рд╖реНрдп рдХреЗ рджреГрд╢реНрдп рдкреЗрдбрд╝реЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддреЗ рд╣реИрдВ, рдкреЗрдбрд╝ рдХреА рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп, рд╣рдо рдЗрд╕рдХреЗ рдЕрдВрджрд░ рдХреБрдЫ рдЪрд░реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рддрдп рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ ( foo('Alice') рдпрд╛ foo('Bob') рдмреБрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИред рдЪрд░ y рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрд╛рд╣рд░ рдмрджрд▓реЗрдВ) рдФрд░, рдЬрдмрдХрд┐ рдкреЗрдбрд╝ рдХреА рд╢рд╛рдЦрд╛рдПрдВ рдореМрдЬреВрдж рд╣реИрдВ, рд╣рдо рдХреЗрд╡рд▓ рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдкрддреНрддрд┐рдпрд╛рдВ рдЗрд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред

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

рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдФрд░ рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕


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

рд╣рдо "рднреВрд▓ рдЬрд╛рдПрдВрдЧреЗ" рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ, рдФрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ, рдЬреИрд╕реЗ рдХрд┐ рд╕реА рдореЗрдВ, рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рджрд╕реНрдп рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдм рдХреЗ рд▓рд┐рдП, рд╣рдо рдмрд┐рдВрджреБ рд╕рдВрдХреЗрддрди рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ рдФрд░ рд╣рдореЗрд╢рд╛ рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдВрдЧреЗред рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рдХрд╛рд░реНрдп рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдЪрд░ рдХреЗ рд╕рд╛рде рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рджреЛрдиреЛрдВ рдбреЗрдЯрд╛ рдпреБрдХреНрдд рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рд╣реИ:
 //  3 var obj = { x: 10, y: 20, foo: function () {return x + y;} }; console.log(obj['foo']()); // ! 


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдХреНрд░рд┐рдпрдг рдСрдмреНрдЬреЗрдХреНрдЯ (рд╕реНрдЯреИрдХ рдлреНрд░реЗрдо рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдореЗрдВ рд╣рдорд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди foo() рдореЗрдВ рдХреЛрдИ x рдФрд░ y ред рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдЪрд░ obj ред рдЙрди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ obj['x'] рдФрд░ obj['y'] рд░реВрдк рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:
 //  4 var obj = { x: 10, y: 20, foo: function () {return obj['x'] + obj['y'];} } console.log(obj['foo']()); // 30 


рдЬреАрдд рдЧрдП рд╣реИрдВ! рд╣рдо рдбреЗрдЯрд╛ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдмрд╛рд░ рд╣рдореЗрдВ рдПрдХ рд╣реА рдбрд┐рд╡рд╛рдЗрд╕, рдПрдХ рд╣реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдХрдИ рд╡рд╕реНрддреБрдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЪрд░ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдореВрд▓реНрдпред рдПрдХ рдРрд╕рд╛ рдлрдВрдХреНрд╢рди рдмрдирд╛рдПрдВ рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдВрд░рдЪрдирд╛рдПрдВ рдЙрддреНрдкрдиреНрди рдХрд░реЗ:
 //  5 function createObj(x, y) { var obj = {}; obj['x'] = x, obj['y'] = y, obj['foo'] = function () {return obj['x'] + obj['y'];} return obj; } var obj1 = createObj(1, 2); var obj2 = createObj(3, 4); console.log(obj1['foo']()); // 3 console.log(obj2['foo']()); // 7 


рдЪреВрдВрдХрд┐ createObj() рдлрд╝рдВрдХреНрд╢рди рдиреЗрд╕реНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ obj рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ рдЗрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдХреНрд▓реЛрдЬрд░ x , y рдФрд░ foo рдХреА рдкреНрд░рддрд┐рдпреЛрдВ рд╕реЗ рдмрдирд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрддреЗ рд╣реИрдВ (рд╕реНрдХреЛрдк рдЯреНрд░реА рдКрдкрд░ рдХреА рдУрд░ рдмрдврд╝рддрд╛ рд╣реИ)ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рдорд╛рди рд╣реИред рдПрдХ рдкреВрд░реНрдг рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдПред рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ, рд╣рдо рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдмрд┐рдВрджреБ рдЕрдВрдХрди рдкрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди OOP рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдмрд┐рдирд╛ OOP рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВ? рд╣рдо рдПрдХ рдРрд╕рд╛ рдХрд╛рд░реНрдп рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рднреА рдЧреБрдгреЛрдВ рдХреЛ рд╡рдВрд╢рдЬ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рд╕рдЦреНрддреА рд╕реЗ рдмреЛрд▓рдирд╛, рдпрд╣ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдмрдЬрд╛рдп рдХреНрд▓реЛрдирд┐рдВрдЧ рд╣реИред рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдмрдЪреНрдЪреЗ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдкреНрд░рддреНрдпреЗрдХ рдмрдЪреНрдЪреЗ рдореЗрдВ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рддрд░реАрдХреЛрдВ рдХреА рдкреНрд░рддрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрддреНрдпрдзрд┐рдХ рдореЗрдореЛрд░реА рдЦрдкрдд рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред рд╢рд╛рдпрдж рдмрдЪреНрдЪреЗ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдореЗрдВ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд░рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред рд╣рдореЗрдВ рд╡рд┐рд░рд╛рд╕рдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЧреБрдгреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 //  6 function createObj(x, y) { var obj = {}; obj.x = x, obj.y = y, obj.foo = function () {return obj.x + obj.y;} return obj; } function createChild (parent) { var child = {}; child.__parent__ = parent; return child; } function lookupProperty (obj, prop) { if (prop in obj) return obj[prop]; else if (obj.__parent__) return lookupProperty (obj.__parent__, prop); } var a = createObj(1, 2); var b = createChild (a); console.log(lookupProperty(b, 'y')); // 2 console.log(lookupProperty(b, 'foo')()); // 3 


рдпрд╣ рдПрдХ рдЖрджреЗрд╢ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рд╣рдо рд╡рд╕реНрддреБ b рдмрджрд▓рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬреИрд╕реЗ: bx = 10 , рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред foo() рд╡рд┐рдзрд┐ рдЕрднреА рднреА рдЕрдкрдиреА рд╡рд╕реНрддреБ рдХреЗ рдЧреБрдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрддреА рд╣реИ, рди рдХрд┐ рдЙрд╕рдХреЗ рд╡рдВрд╢ рдХреА рд╡рд╕реНрддреБред рдпрджрд┐ рд╣рдо рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рддрд░реАрдХреЛрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдпрд╣ рд╕рд┐рдЦрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЖрдк рдПрдХ рддрд░реНрдХ рдХреЛ рдЙрд╕ рд╡рд┐рдзрд┐ рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрджрд░ lookupProperty() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ x рдФрд░ y рдЧреБрдг рд╡рд░реНрддрдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдпрд╛ рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕ рдЪреЗрди рдХреЛ рдЦреЛрдЬрдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдирд╣реАрдВред createChild() рдФрд░ lookupProperty() рдлрд╝рдВрдХреНрд╢рди рд╕реНрд╡рдпрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддреЗ рд╣реИрдВ:
 //  7 function createObj(x, y) { var obj = {}; obj.x = x, obj.y = y, obj.foo = function (currentObj) { return lookupProperty(currentObj, 'x') + lookupProperty(currentObj, 'y'); } return obj; } function createChild (parent) { var child = {}; child.__parent__ = parent; return child; } function lookupProperty (obj, prop) { if (prop in obj) return obj[prop]; else if (obj.__parent__) return lookupProperty (obj.__parent__, prop); } var a = createObj(1, 2); var b = createChild (a); bx = 10; console.log(lookupProperty(b, 'y')); // 2 console.log(lookupProperty(b, 'foo')(b)); // 12 


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

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

рдлрд┐рд░, createObj() рдФрд░ createChild() рдлрд╝рдВрдХреНрд╢рди рдХреЛ createChild() - рд╡реЗ рдмрд╣реБрдд рд╕рдорд╛рди рд╣реИрдВред рджреЛрдиреЛрдВ рдкреНрд░рд╡реЗрд╢ рдкрд░ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╡рд╕реНрддреБ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рд╕рдВрдпреБрдХреНрдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд░реВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ Object ред рдпрд╣ рджреЛ рддрд░реНрдХ рд▓реЗрдЧрд╛ - рдореВрд▓ рд╡рд╕реНрддреБ рдФрд░ рд╡рд╣ рд╡рд╕реНрддреБ рдЬреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рд╡рдВрд╢ рдХреЗ рдЕрдВрддрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ (рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЕрдВрддрд░ рдпрд╛ рдЕрдВрддрд░ рд╡рд┐рд░рд╛рд╕рдд рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдЕрдВрдд рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рддрд░реНрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╡рд╕реНрддреБ рдХреЛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрд╕ рд╡рд╕реНрддреБ рдХрд╛ рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдЗрд╕реЗ OOP рдкрд░рдВрдкрд░рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╣рддреЗ рд╣реИрдВ:
 //  8 var a = Object.create(null, { x: {value: 1}, y: {value: 2}, foo: {value: function() { return this.x + this.y; } } }); var b = Object.create(a, {x: {value: 10}}); console.log(b.x+', '+b.y+', '+b.foo()); // 10, 2, 12 


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

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

рд╕реВрдЪреА рдореЗрдВ рд▓реМрдЯрдирд╛ 7. рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдлрдВрдХреНрд╢рдиреНрд╕ рд╕рд╣рд┐рдд рд╕рдм рдХреБрдЫ рдПрдХ рд╡рд╕реНрддреБ рд╣реИред рдЕрд░реНрдерд╛рддреН, рд╣рдо рд╕рд╛рдзрд╛рд░рдг рд╡рд╕реНрддреБрдУрдВ рдХреА рддрд░рд╣ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рднреА рдЧреБрдг рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ prototype рдЧреБрдг рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ред рдлрд┐рд░, рдЬреИрд╕рд╛ рдХрд┐ рд╕реВрдЪреА 8 рдореЗрдВ рд╣реИ, рд╣рдо рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдХрд╛ рдирд╛рдо рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ, child рдФрд░ currentObj рд▓рд┐рдП this , рдЙрдирдХреА рдШреЛрд╖рдгрд╛ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдФрд░ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЗ рдЕрдВрджрд░ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ lookupProperty() рд╣рдЯрд╛ рджреЗрдВред рдЪреВрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рдмрдирд╛рддрд╛ рд╣реИ, рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ Object.create() рдЕрд░реНрдерд╣реАрди рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЛ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╣реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдПрдХ рдмрдбрд╝реЗ рдЕрдХреНрд╖рд░ рдХреЗ рд╕рд╛рде, рддрд╛рдХрд┐ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рди рд╣реЛрдВред рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рдордиреЗ new рдХреАрд╡рд░реНрдб рдЬреЛрдбрд╝реЗрдВред рдпрд╣рд╛рдБ рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ:
 //  9 function A(x, y) { this.x = x, this.y = y, this.foo = function () { return this.x + this.y; } }; function B () {}; B.prototype = new A(1, 2); var b = new B(); console.log(b.x+', '+b.y+', '+b.foo()); // 1, 2, 3 


рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ + рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЬреЛрдбрд╝реА (рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ: B()+B.prototype ) рдХреНрд▓рд╛рд╕рд┐рдХ B()+B.prototype рдореЗрдВ рд╡рд░реНрдЧ рдХреЗ рд╕рдорд╛рди рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 8 рдореЗрдВ, рд╡рд╕реНрддреБ рдкреВрд░реА рддрд░рд╣ рд╕реЗ b рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рддреА рд╣реИ, рдФрд░ 9 рдХреА рд╕реВрдЪреА рдореЗрдВ, рд╣рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдЪрд░ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рдЧрдпрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдореЗрдВ A() рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЧреБрдг x рдФрд░ y , рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ B рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдзрд┐ foo() :
 //  10 function B (x, y) { this.x = x, this.y = y }; B.prototype.foo = function () { return this.x + this.y; } var b = new B(1, 2); console.log(b.x+', '+b.y+', '+b.foo()); // 1, 2, 3 


Object.create() рд▓рд┐рдП рдПрдХ рд╣реА рдмрд╛рдд Object.create() :
 //  11 var B = { foo: function() { return this.x + this.y; } }; var b = Object.create(B, {x: {value: 10}, y: {value: 20}}); console.log(b.x+', '+b.y+', '+b.foo()); // 10, 20, 30 


рдирд┐рд╖реНрдХрд░реНрд╖


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

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

3. рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдЯреНрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ (рдпреВрдкреАрдбреА: рд╕реЗ рдмрдврд╝рддрд╛ рд╣реИ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╢реВрдиреНрдп рд╕реЗ рдмрдврд╝рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ, рдЗрд╕реЗ рд╣рд▓реНрдХреЗ рдврдВрдЧ рд╕реЗ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╣реБрдд рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж azproduction )ред рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рд╡реГрдХреНрд╖ рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЧреБрдгреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ рд╣реИ, рдпрджрд┐ рд╕рдВрдкрддреНрддрд┐ рд╕реНрд╡рдпрдВ рд╡рд╕реНрддреБ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд▓реБрдХрдкреНрд░реЛрдкрд░реНрдЯреА () рдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ред EcmaScript рдорд╛рдирдХ рдореЗрдВ, рдпрд╣ [[рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ]] рд╡рд┐рдзрд┐ рд╣реИ ред рдХрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдореВрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ (__parent__ рдХреЛ 6 рдФрд░ 7 рдореЗрдВ) рдХрд╛ рд╕рдВрджрд░реНрдн __proto__ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреБрд░рд╛ рд░реВрдк рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рднрд╛рд╖рд╛ рдорд╛рдирдХ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдШрд░ рдореЗрдВ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред Object.prototyp рдФрд░ Object .__ proto__ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рд╣реИрдВред Object.prototype рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд▓реМрдЯреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

4. рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреЛрдИ рдирд┐рдЬреА, рд╕рдВрд░рдХреНрд╖рд┐рдд рдпрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдВрд╢реЛрдзрдХ рдирд╣реАрдВ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреНрд▓реЛрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣ рдЫрд┐рдкрд╛рдирд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдпрд╛ рд╡рд╣ рднреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдПрдХ рдмрд▓реНрдХрд┐ рд╕рдВрджрд┐рдЧреНрдз рдЕрднреНрдпрд╛рд╕ рд╣реИ - рдРрд╕реЗ рдХреЛрдб рдХреЛ рдкрдврд╝рдирд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдзреБрдирд┐рдХ рдЧрддрд┐рд╢реАрд▓ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рдирд┐рдЬреА рд╕рд┐рд░реНрдл рдПрдХ рд╕рдореНрдореЗрд▓рди рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдирд┐рдЬреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдпрд╣ рдирд┐рдЬреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдерд╛рдЧрдд рд╣реИ: _ рд╕рд╣рд╛рдпрддрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдХреНрд╕рд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдирд┐рдЬреА рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рдЧрднрдЧ рдорд╛рдирдХ рд╡рд┐рдХрд▓реНрдк рд╣реИред

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

рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рд╣рд┐рддреНрдп рдХреА рд╕реВрдЪреА


  1. рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдВрдж
  2. рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯред рдХреЛрд░
  3. ECMA-262-3 рдХреА рд╕реВрдХреНрд╖реНрдорддрд╛ред рд╢реЙрд░реНрдЯ рд╕рд░реНрдХрд┐рдЯред
  4. рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕реВрдХреНрд╖реНрдорддрд╛
  5. ECMA-262-5 рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗред рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╡рд╛рддрд╛рд╡рд░рдг: рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрдд
  6. рдСрдмреНрдЬреЗрдХреНрдЯ рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд╕рд╛рде рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реАрдЦрдирд╛: рднрд╛рдЧ 1 , рднрд╛рдЧ 2 , рднрд╛рдЧ 3
  7. рдСрдмреНрдЬреЗрдХреНрдЯ рдУрд░рд┐рдПрдВрдЯреЗрдб рд╕реА (рдкреАрдбреАрдПрдл)
  8. рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореВрд▓ рдмрд╛рддреЗрдВ рдФрд░ рдЧрд▓рдд рдзрд╛рд░рдгрд╛рдПрдБ

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


All Articles