рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЬреЗрдПрд╕ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рд▓реЙрдЬрд┐рдХ рдХреЛ рдСрдкрд░реЗрд╢рдирд▓ рдмреНрд▓реЙрдХ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдлрд╝рдВрдХреНрд╢рдВрд╕
рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреА рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ рдЬреЛ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдЗрд╕ рднрд╛рд╖рд╛ рдХреА рддрд╛рдХрдд рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрднрд┐рд╢рд╛рдк рджреЛрдиреЛрдВ рд╣реИред рдордЬрд╝рдмреВрдд рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╡рд╛рд▓реА рднрд╛рд╖рд╛, рд╣рд▓реНрдХреА рдФрд░ рддреЗрдЬрд╝ рд╣реЛ рдЬрд╛рддреА рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдиреЗ рд╢реБрд░реВ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЗрдЦрд╛ рдерд╛)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрд░реЗрд╢рд╛рдиреА рдХреА рдЙрдореНрдореАрдж рдХрд░реЗрдВред
рдореИрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдкреИрдЯрд░реНрди рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ, рдФрд░ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдЪрдпрдирд┐рдд рдкреИрдЯрд░реНрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкрд░рд┐рдгрд╛рдо рдХреИрд╕реЗ рдмрджрд▓рддрд╛ рд╣реИред рд╣рдо рдпрд╣ рднреА рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреИрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдЪрд╛рд░ рддрд░реАрдХреЗ рд╣реИрдВ:
- рд╡рд┐рдзрд┐ рдордВрдЧрд▓рд╛рдЪрд░рдг - рд╡рд┐рдзрд┐ рдордВрдЧрд▓рд╛рдЪрд░рдг
- рдлрдВрдХреНрд╢рди рдЗрдирд╡реЛрдХреЗрд╢рди - рдлрдВрдХреНрд╢рди рдЗрдирд╡реЛрдХреЗрд╢рди
- рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЗрдирд╡реЛрдХреЗрд╢рди - рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЗрдирд╡реЛрдХреЗрд╢рди
- рдХреЙрд▓ рдЕрдкреНрд▓рд╛рдИ рдФрд░ рдХреЙрд▓ - рдЕрдкреНрд▓рд╛рдИ рдПрдВрдб рдХреЙрд▓ рдЗрдирд╡реЛрдХреЗрд╢рди
рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрди
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд╕рднреА рдЖрдзреБрдирд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдХреА рддрд░рд╣, рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрдВрджрд░ рддрд░реНрдХ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИ, рдФрд░ рдпреЗ рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕реА рднреА рд╕рдордп, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмреАрдЪ рдореЗрдВ рдХрд╣реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ, рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд░реНрддрдорд╛рди рдСрдкрд░реЗрд╢рди рдХреЛ рд░реЛрдХрддреЗ рд╣реБрдП рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдХреЙрд▓ рдСрдкрд░реЗрдЯрд░
рдХреЛрд╖реНрдардХ () рд╣реИ , рдЬреЛ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреЙрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХрдИ рдкреИрдЯрд░реНрди рд╣реИрдВред рдЖрдкрдХреЛ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдЧрд░реВрдХ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдпрд╛рдж рд░рдЦрдиреЗ рдФрд░ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЪрдпрдирд┐рдд рдкреИрдЯрд░реНрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдкрдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗрдВрдЧреЗред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╕реНрд╡рдпрдВ рднрд╛рд╖рд╛ рдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рдПрдХ рдЧрд▓рддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдо рдЬрд▓реНрджрдмрд╛рдЬреА рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рдХреЗ рд╕рд╛рде, рдПрдХ рд╕рдорд╛рди рдкреНрд░рдХреГрддрд┐ рдХреА рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЪрд╛рд░ рдкреИрдЯрд░реНрди
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд░ рдПрдХ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдЪрд╛рд░ рддрд░реАрдХреЗ рд╣реИрдВред
рд╡рд┐рдзрд┐ рдордВрдЧрд▓рд╛рдЪрд░рдг - рд╡рд┐рдзрд┐ рдордВрдЧрд▓рд╛рдЪрд░рдг
рдЬрдм рдХреЛрдИ рдХрд╛рд░реНрдп рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдПрдХ рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред "рдореЗрдердб рдХреЙрд▓" рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
var obj = {
рдорд╛рди : 0 ,
рд╡реЗрддрди рд╡реГрджреНрдзрд┐ : рдлрд╝рдВрдХреНрд╢рди ( ) {
рдпрд╣ ред рдорд╛рди + = 1 ;
}
} ;
objред рд╡реЗрддрди рд╡реГрджреНрдзрд┐ ( ) ;
"рдореЗрдердб рдХреЙрд▓" рдореЗрдВ,
this
рдорд╛рди рдЙрд╕ рд╡рд╕реНрддреБ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдЧрд╛, рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддреА рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, obj, рдФрд░ рдпрд╣ рдХрдиреЗрдХреНрд╢рди рдлрд╝рдВрдХреНрд╢рди рд▓реЙрдиреНрдЪ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рджреЗрд░ рд╕реЗ рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╢рдмреНрдж рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдлрдВрдХреНрд╢рди рдЗрдирд╡реЛрдХреЗрд╢рди - рдлрдВрдХреНрд╢рди рдЗрдирд╡реЛрдХреЗрд╢рди
рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдСрдкрд░реЗрдЯрд░ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдЬреЛрдбрд╝реЗрдВ ( 2 , 3 ) ; // 5
рдЗрд╕ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП,
this
рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБ рдХреЛ рдмрд╛рдВрдзрддрд╛ рд╣реИред рдпрд╣ рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рднрд╛рд╖рд╛ рдХреА рдЧрд▓рддреА рд╣реИ - рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдЗрд╕рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рдирд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдпрджрд┐ рдЖрдк рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрджрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:
var рдорд╛рди = 500 ; // рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░
var obj = {
рдорд╛рди : 0 ,
рд╡реЗрддрди рд╡реГрджреНрдзрд┐ : рдлрд╝рдВрдХреНрд╢рди ( ) {
рдпрд╣ ред рдорд╛рди ++;
var рдЗрдирд░рдлрд╝рдВрдХреНрд╢рди = рдлрд╝рдВрдХреНрд╢рди ( ) {
рдЪреЗрддрд╛рд╡рдиреА ( рдпрд╣ рдорд╛рди ) ;
}
рдЗрдиреНрдЯрд░рдлреЗрдХреНрд╢рди ( ) ; // рдлрдВрдХреНрд╢рди рдЗрдирд╡реЛрдХреЗрд╢рди рдкреИрдЯрд░реНрди
}
}
objред рд╡реЗрддрди рд╡реГрджреНрдзрд┐ ( ) ; // рд╡рд┐рдзрд┐ рдордВрдЧрд▓рд╛рдЪрд░рдг рдкреИрдЯрд░реНрди
рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛? рдпрджрд┐ рдЖрдк рддрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ 1 - рдЖрдк рдЧрд▓рдд рд╣реИрдВ (рд▓реЗрдХрд┐рди рдЦреБрдж рдХреЛ рджреЛрд╖ рди рджреЗрдВ - рдХреБрдЯрд┐рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд┐рдЬрд╛рдЗрди рдХреЛ рджреЛрд╖ рджреЗрдВ)ред рд╕рд╣реА рдЙрддреНрддрд░ 500 рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
innerFunction
рдХреЛ рдкреВрд░реНрд╡реЛрдХреНрдд "рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓" рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП
this
рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИред рдирддреАрдЬрддрди, рд╣рдо 500 рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рдЖрдк
this
рдЪрд░ рдХреЛ рдмрдирд╛рдХрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдПрдХ рд╣реИрдХ рд╣реИред
var рдорд╛рди = 500 ; // рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░
var obj = {
рдорд╛рди : 0 ,
рд╡реЗрддрди рд╡реГрджреНрдзрд┐ : рдлрд╝рдВрдХреНрд╢рди ( ) {
var рд╡рд╣ = рдпрд╣ ;
рдХрд┐ред рдорд╛рди ++;
var рдЗрдирд░рдлрд╝рдВрдХреНрд╢рди = рдлрд╝рдВрдХреНрд╢рди ( ) {
рд╕рддрд░реНрдХ ( рдХрд┐ рдореВрд▓реНрдп ) ;
}
рдЗрдиреНрдЯрд░рдлреЗрдХреНрд╢рди ( ) ; // рдлрдВрдХреНрд╢рди рдЗрдирд╡реЛрдХреЗрд╢рди рдкреИрдЯрд░реНрди
}
}
objред рд╡реЗрддрди рд╡реГрджреНрдзрд┐ ( ) ;
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо
this
рдЙрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп
this
рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЗрдирд╡реЛрдХреЗрд╢рди - рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЗрдирд╡реЛрдХреЗрд╢рди
рдЪреЗрддрд╛рд╡рдиреА: рдпрд╣ рдПрдХ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬреЛ рдХреНрд▓рд╛рд╕рд┐рдХ OOP рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИ! рдпрд╣ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ "рд╢рд╛рд╕реНрддреНрд░реАрдп рд╕реНрдХреВрд▓" (рдЬрд┐рдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢) рдХреЗ рд▓реЛрдЧ рдЕрд╕рд╣рдЬ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВрдЧреЗред рдирддреАрдЬрддрди, рд╢рд╛рд╕реНрддреНрд░реАрдп рдУрдУрдкреА рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖ - рдПрдХ рдЧрдбрд╝рдмрдбрд╝ред
рдХреНрд▓рд╛рд╕рд┐рдХ OOP рдореЗрдВ, рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред C ++ рдФрд░ Java рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП
new
рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЬреЗрдПрд╕ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдиреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдкреАрдЫреЗ рдирд╣реАрдВ рдЬрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░ "рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЙрд▓" рдкреИрдЯрд░реНрди рдореЗрдВ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ ...
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
new
рдСрдкрд░реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
var рдЪреАрдЬрд╝ = рдлрд╝рдВрдХреНрд╢рди ( рдкреНрд░рдХрд╛рд░ ) {
рдкрдиреАрд░ рдЯрд╛рдЗрдк = рдкреНрд░рдХрд╛рд░ ;
рд╡рд╛рдкрд╕реА рдкрдиреАрд░ ;
}
cheddar = рдирдпрд╛ рдЪреАрдЬрд╝ ( "cheddar" ) ; // рдПрдХ рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдПрдХ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ
рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐
Cheese
рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╡рд╕реНрддреБ рд╣реИ (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб рдХреЛ рдкрдЪрд╛ рд╕рдХрддрд╛ рд╣реИ), рд╣рдордиреЗ рдирдП рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдмрдирд╛рдИред
this
рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдирдП рдмрдирд╛рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдЧрд╛, рдФрд░
return
рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рд╡рд╛рдкрд╕реА рдХреА рдмрд╛рдд рдХрд╣реАред "рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЙрд▓" рдореЗрдВ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рджреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:
- рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╕рдВрдЦреНрдпрд╛, рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛, рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (рд╕рдЪреНрдЪрд╛ / рдЧрд▓рдд), рдЕрд╢рдХреНрдд рдпрд╛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд
return
, рддреЛ return
рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдФрд░ рд╣рдо рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ - рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓реМрдЯрд╛рддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд, рд╕рд░рд▓ рдЪрд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рдм рдХреБрдЫ), рддреЛ рд╣рдо рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ, рдпрд╣ рдирд╣реАрдВ
var obj = {
рдбреЗрдЯрд╛ : "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб"
}
var Func1 = function ( ) {
рд╡рд╛рдкрд╕реА obj ;
}
var Func2 = function ( ) {
рд╡рд╛рдкрд╕реА "рдореИрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рдХрд╛рд░ рд╣реВрдБ" ;
}
var f1 = new Func1 ( ) ; // f1 рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ
var f2 = new Func2 ( ) ; // f2 рдХреЛ рдирдИ рд╡рд╕реНрддреБ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ
рд╣рдо рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдПрдХ рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ: рдЗрд╕ рдкреИрдЯрд░реНрди рд╕реЗ рдЬреБрдбрд╝реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рднрд╛рд╖рд╛ рдХреА рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИрдВ - рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рдПрдХ рдордирдорд╛рдиреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг (
рдпрд╣рд╛рдБ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг - Engред )ред рдпрд╣ рдкреИрдЯрд░реНрди рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдорд╕реНрдпрд╛рдПрдВ рдЕрдХреНрд╕рд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВред рдбрдЧрд▓рд╕ рдХреНрд░реЙрдлреЛрд░реНрдб рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рдпрд╛: рдЖрдк рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде
рд╕рдВрд╡рд░реНрдзрд┐рдд рд╡рд╕реНрддреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдпрд╣ рдмрддрд╛рддреЗ рд╣реБрдП рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 1.8.5 рдХреЗ рдмрд╛рдж рд╕реЗ,
Object.create
рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЙрдкрдХрд░рдг рд╣реИред
рдХреЙрд▓ рдЕрдкреНрд▓рд╛рдИ рдФрд░ рдХреЙрд▓ - рдЕрдкреНрд▓рд╛рдИ рдПрдВрдб рдХреЙрд▓ рдЗрдирд╡реЛрдХреЗрд╢рди
рдпрд╣ рдкреИрдЯрд░реНрди рджреВрд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЗрд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд
this
ред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдкреВрд░реНрдг рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдлрд╝рдВрдХреНрд╢рди.рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдирдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рдкреИрдЯрд░реНрди рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: рдкрд╣рд▓рд╛ рд╡рд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде
this
рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╕рд░рдгреА рд╣реИ:
var add = function ( num1 , num2 ) {
рд╡рд╛рдкрд╕реА num1 + num2 ;
}
рд╕рд░рдгреА = [ 3 , 4 ] ;
рдЬреЛрдбрд╝реЗрдВред рд▓рд╛рдЧреВ ( рдЕрд╢рдХреНрдд , рд╕рд░рдгреА ) ; // 7
рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ,
this
null
(рдлрд╝рдВрдХреНрд╢рди рдХреЛрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реИ) рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рд░рдгреА
num1
рдФрд░
num2
рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ:
var obj = {
рдбреЗрдЯрд╛ : 'рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб'
}
var displayData = function ( ) {
рд╕рддрд░реНрдХ ( рдпрд╣ рдбреЗрдЯрд╛ ) ;
}
рдкреНрд░рджрд░реНрд╢рди ( ) ; // рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд
displayDataред рд▓рд╛рдЧреВ ( obj ) ; // рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
this
obj
apply
рд▓рд┐рдП рдмрд╛рдзреНрдп
apply
рд▓рд┐рдП
apply
рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рдЗрд╕.
this.data
рдХрд╛ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рдирд┐рд╣рд┐рдд рд╣реИред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдПрдХ
call
рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рднреА рд╣реИ, рдЬреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП
apply
рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рддрд░реНрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдмреЗрд╣рддрд░ рдпрд╛ рдмрджрддрд░ рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреБрдирд┐рдпрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдЬрд┐рдиреНрд╣реЗрдВ рдмрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪрд╛рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдкреИрдЯрд░реНрди рд╕рдордЭрдирд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢рд┐рдХреНрд╖рд╛рд░реНрдерд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬрд░реВрд░реА рд╣реИред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреЛрд╕реНрдЯ рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдЧреАред