рдЬреЙрди рд░реЗрдЬрд┐рдЧ рдХреЗ рдЖрддреНрдо-рдЖрд╡рд┐рд╖реНрдХрд╛рд░рдХ рдирд┐рд░реНрдорд╛рддрд╛ рдФрд░ рдЗрд╕ рдирд┐рд░реНрдгрдп рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдпрд╣ рдирд┐рд░реНрдгрдп рдХреНрдпреЛрдВ рдирд╣реАрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛

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

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



6 рджрд┐рд╕рдВрдмрд░, 2007 рдХреЛ, рд░реЗрдЬрд┐рдЧ рдиреЗ рдЬрд╛рдВрдЪ рдХреА рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдПрдХ рд╡рд╕реНрддреБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ "рдирдпрд╛" рдСрдкрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рд╣рдо рдХрд╣реЗрдВрдЧреЗ "рд╡рд░реНрдЧ рдЙрджрд╛рд╣рд░рдг"):

function User(first, last){ this.name = first + " " + last; } var user = new User("John", "Resig"); 

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

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

 var name = "Resig"; var user = User("John", name); //   ┬лuser┬╗   //  :  ┬лname┬╗  ├й  ┬лResig┬╗! if ( name == "John Resig" ) { // !тАж } 

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

 //    : function User(){} User.prototype = { /* тАж тАж */ }; //     : function User(){ return { /* тАж тАж */ }; } 

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

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, Resig рдЬрд╛рд░реА рд░рдЦрд╛, рдЗрди рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рд╢рд░реАрд░ рдХреА рд╕рд╢рд░реНрдд рд╕рдВрдХреЗрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЙрдзрд╛рд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 function User(first, last){ if ( this instanceof User ) { //    : this.name = first + " " + last; } else { //     : return new User(first, last); } } 

рдЗрдВрд╕реНрдЯрд╛рдлреЙрдкрд░ рдСрдкрд░реЗрдЯрд░ рдпрд╣рд╛рдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрдкрдХрд░рдг рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдирдпрд╛ рдСрдкрд░реЗрдЯрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдерд╛ - рдФрд░ рдпрд╣ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ:

 function test(){ alert( this instanceof test ); } test(); //   alert( false ); new test(); //   alert( true ); 

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

 // makeClass - By John Resig (MIT Licensed) function makeClass(){ return function(args){ if ( this instanceof arguments.callee ) { if ( typeof this.init == "function" ) this.init.apply( this, args.callee ? args : arguments ); } else return new arguments.callee( arguments ); }; } 

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

 var User = makeClass(); User.prototype.init = function(first, last){ this.name = first + " " + last; }; var user = User("John", "Resig"); user.name //  ┬лJohn Resig┬╗ 

" рдореЗрдХрдХреНрд▓рд╛рд╕ " рдХреЗ рдХрд╛рдо рдХрд╛ рддрд░реНрдХ рдЬреЙрди рд░реЗрдЬрд┐рдЧ рдиреЗ рднреА рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╕рдордЭрд╛рдпрд╛ред " MakeClass () " рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдмрдирд╛рддрд╛ рд╣реИ - рдпрд╣ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЕрдирд╛рдо рдлрд╝рдВрдХреНрд╢рди (args) рдлрд╝рдВрдХреНрд╢рди " makeClass " рд╕реЗ рд▓реМрдЯрд╛ рд╣реИ ред рдЪреВрдВрдХрд┐ "рд╡рд░реНрдЧ" (рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдирд╛рдо) рдХрд╛ рдирд╛рдо рдЕрднреА рддрдХ рдЕрдЧреНрд░рд┐рдо рд░реВрдк рд╕реЗ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рдордп рдпрд╣ рд╕реЗрд╡рд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА " рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯреНрд╕.рд╕рд╛рд▓ " рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╡рд╣рд╛рдВ рд╕реЗ рдЕрдкрдирд╛ рдирд╛рдо рд▓реЗрддрд╛ рд╣реИред рдПрдХ рдФрд░ рдЪрд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЗрд╕ рдЕрдирд╛рдо рдлрд╝рдВрдХреНрд╢рди рдХреЛ " рдирдпрд╛ " рдХреЗ рдмрд┐рдирд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ , рддреЛ рдЗрд╕рдХреЗ рддрд░реНрдХ (" рддрд░реНрдХ ") рдЗрд╕рдХреЗ рдЕрдВрджрд░ рдлрд┐рд░ рд╕реЗ рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рдЦреБрдж рдХреЛ рдирд┐рд░реНрдорд╛рддрд╛ рдХреА рднреВрдорд┐рдХрд╛ рдореЗрдВ рдХрд╣рддрд╛ рд╣реИ (" рдирдП рддрд░реНрдХ рд╡рд╛рдкрд╕ рдХрд░реЗрдВред рд╕рдорд╛рдирддрд╛рдПрдВ (рддрд░реНрдХ) ") - рдФрд░ рдлрд┐рд░ рдпрд╣ рддрд░реНрдХ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬреЛ args рдкреИрд░рд╛рдореАрдЯрд░ рдмрди рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ init рдореЗрдердб рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдЬреЙрди рд░реЗрдЬрд┐рдЧ рдХреЗ рд╡рд┐рдЪрд╛рд░рд╢реАрд▓ рдмреНрд▓реЙрдЧрд┐рдВрдЧ рдХреА рд╡рд╛рдкрд╕реА рдЕрдм рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рд╣реИ; рдЕрдм рдореИрдВ рдЕрдВрдд рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд╣ рдЦреБрдж рдХрд╣рд╛рдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдмрд╣реБрдд рдЪрд╛рд▓рд╛рдХ рд╣реИред

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

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдЬрд╛рд╡рд░рд╛рд▓реЗрдЦреЛрдВ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд╕рдореБрджрд╛рдп рдореЗрдВ " рддрд░реНрдХреЛрдВ.рд╕рдВрдмрдВрдзреА " рдХреЗ рд▓рд┐рдП рдпрд╣ рджреБрд╢реНрдордиреА рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЦреБрдж рдХреЛ рдЖрддреНрдордШрд╛рддреА рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рд░реЗрдЬрд┐рдЧреЛрд╡ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЧрдИ рд╣реИ - рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕реНрд╡рд╕реНрде рдФрд░ рдЙрдкрдпреЛрдЧреА рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рдкрдХреНрд╖ " $" ("div") рд╣реИред " рдФрд░" рдирдпрд╛ $ ("div") " рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдПрдХ рдордЬрдмреВрдд рдФрд░ рдареЛрд╕ рддрд░реНрдХ рд▓рдЧрддрд╛ рд╣реИред

рд╕реНрд╡-рдирд┐рд░реНрдорд┐рдд рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рд╢рддреНрд░реБрддрд╛ рдХрд╛ рдПрдХ рдЕрдиреНрдп рдХрд╛рд░рдг, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рдХреЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ " рдирдП " рдСрдкрд░реЗрдЯрд░ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ , рдЬрд┐рд╕рд╕реЗ рдЕрдирднрд┐рдЬреНрдЮрддрд╛ рдЗрддрдиреА рд╢рд░реНрдордирд╛рдХ рд╣реИ рдХрд┐ рдЗрд╕ рдСрдкрд░реЗрдЯрд░ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред (рдХрдВрдкреНрдпреВрдЯрд░ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдореЗрд╢рд╛ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рднрд╛рд╡рдирд╛ рдХрднреА-рдХрднреА рдирдП рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрд▓рддреА рд╣реБрдИ рдЕрд░реБрдЪрд┐ рдХреЛ рдЬрдиреНрдо рджреЗрддреА рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдорджрдж рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ: "рдирд╣реАрдВ, рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рд░рд▓ рд╣реЛрдЧрд╛; рдореИрдВрдиреЗ рд╕реЗрдХреНрд╕ рдХрд┐рдпрд╛ рдерд╛ - рдЕрдм рддреБрдо рдЬрд╛рдУ рдФрд░ рдХреБрдЫ рдордЬрд╝реЗ рдХрд░реЛред" )

рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рджреЗрдЦрд╛ рд╣реИред

рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдЗрд╕ (2011) рд╡рд░реНрд╖ рдХреЗ рдордИ рдореЗрдВ, рдПрдХреНрдЬрд╝рдкреНрд░реЛрдбрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдлрдПрдХреНрдпреВ рдореЗрдВ , рдпрд╣ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛:

- рдирдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдмреЗрд╣рддрд░, рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рдФрд░ рд╡реИрдЪрд╛рд░рд┐рдХ рд╣реИред рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЛ рдкреВрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

(рдмреЛрд▓реА рдХрд╛ рдЕрдВрдд)

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

 if ( !(this instanceof arguments.callee) ){ return new arguments.callee(arguments); } 

Agafonkin рдиреЗ рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдпрд╛:

- рдиреМрд╕рд┐рдЦрд┐рдП рдЬреЗрдПрд╕ рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдЧрд▓рддрд┐рдпрд╛рдБ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдРрд╕реА рдиреАрд░рд╕ рднрд╛рд╖рд╛ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЧрд▓рдд рдмрддрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЧрд▓рдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

- "рдирдП" рдХреЗ рдмрд┐рдирд╛ рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирдИ рддреНрд░реБрдЯрд┐ рдХреЛ рдлреЗрдВрдХрдиреЗ рдЬреИрд╕рд╛ рдХреБрдЫ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ ("рдЖрдк рдХреНрд▓рд╛рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕реЗ рдкрд╣рд▓реЗ рдирдпрд╛ рдХреАрд╡рд░реНрдб рдбрд╛рд▓рдирд╛ рднреВрд▓ рдЧрдПред") ред

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

(рдмреЛрд▓реА рдХрд╛ рдЕрдВрдд)

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

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

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

 function User(first, last){ if ( this instanceof User ) { //    : this.name = first + " " + last; } else { //     : return new User(first, last); } } 

рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдкреВрд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдЧрд░- рдЖрд╡рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рд░рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

 function User(first, last){ if (!(this instanceof User)) return new User(first, last); //         this.name = first + " " + last; // тАж      тАж } 

рдФрд░ рд╣рдореЗрдВ azproduction рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдлрдПрдХреНрдпреВ рдХреЛ рд╢реНрд░рджреНрдзрд╛рдВрдЬрд▓рд┐ рдЕрд░реНрдкрд┐рдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП : рдпрд╣ рд╕рд░рд▓реАрдХрд░рдг рднреА рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдмрд╕ рд╡рд╣рд╛рдБ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рд╣реИред

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

рдпрджрд┐ рдЖрдк рдЕрдВрдд рдореЗрдВ рдЬреАрд╡рди рд╕реЗ рдПрдХ рд╕рдорд╛рди рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЬрд╝рд┐рдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЬ рд╕реЗ zip.js рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ - рдФрд░ рдЬреЛ Node.js рдХреЗ рддрд╣рдд рд╢реБрджреНрдз рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ ( C ++ рдХреА рдПрдХ рднреА рдкрдВрдХреНрддрд┐ рдХреЗ рдмрд┐рдирд╛ ; рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ ; рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдорд╛рд╕реНрдЯрд░рдкреАрд╕ рд╣реИрдВ!)ред рд╡рд╣рд╛рдВ рдЖрдкрдХреЛ рдмрд┐рд▓рдХреБрд▓ рд╡рд╣реА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕реНрд╡-рдХреЙрд▓ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

 var Reader = exports.Reader = function (data) { if (!(this instanceof Reader)) return new Reader(data); this._data = data; this._offset = 0; } 

рдирд┐рд╖реНрдХрд░реНрд╖ рд╕рд░рд▓ рд╣реИ: рдЬреЙрди рд░реЗрдЬрд┐рдЧ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реЗрдВ, рдЙрдирдХреА рд╕рд▓рд╛рд╣ рдорд╛рдиреЗрдВ, рдЙрдирдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдкрд░ рдХрд╛рд░реНрдп рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЬрдЯрд┐рд▓рддрд╛ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рддрдХред



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

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


All Articles