рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛

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

рдХреА рдЖрдзрд╛рд░рд╢рд┐рд▓рд╛


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

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрд┐рдВрджреБ рдкрд░ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рднрд╛рд╖рд╛ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдХрдИ рдЧреБрдг рднреА рдкрд░рд╕реНрдкрд░ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдЖрдк рдмрд╕ рдПрдХ рдЦрд╛рд▓реА рд╡рд╕реНрддреБ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдЧреБрдг рдФрд░ рддрд░реАрдХреЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╢рд╛рдмреНрджрд┐рдХ рдЕрдВрдХрди рд╣реИ :
//   var cat = {}; // : cat.name = "Garfield"; // : cat.getName = function() { return cat.name; }; 

рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреНрдп рддрд░реАрдХрд╛ рд╣реИ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:
 //  : var cat = {name: "Garfield"}; // -: var cat = new Object(); cat.name = "Garfield"; 

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

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

рдСрдмреНрдЬреЗрдХреНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдиреБрдХрд╕рд╛рди


Object рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХрднреА-рдХрднреА рдХреБрдЫ рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕ рдирд┐рд░реНрдорд╛рддрд╛ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рднрд╛рд╖рд╛ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдХрд┐рд╕реА рдЕрдиреНрдп рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджреЗ рд╕рдХрддрд╛ рд╣реИ; рдЕрдВрдд рдореЗрдВ, рд╣рдореЗрдВ рд╡рд╣ рдЧрд▓рдд рд╡рд╕реНрддреБ рдорд┐рд▓рддреА рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЙрдореНрдореАрдж рдереА:
 //  var o = new Object(); o.constructor === Object; // true var o = new Object(1); o.constructor === Number; //true var o = new Object("string"); o.constructor === String; //true //  ,       : typeof o.substring; // "function" 

Object рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╣рдо рд░рди рдЯрд╛рдЗрдо рдореЗрдВ рдЕрдЬреНрдЮрд╛рдд рдореВрд▓реНрдп рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВред

рдиреИрддрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИ: Object рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред

рдЦреБрдж рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛


рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
 var cat = new Cat("Garfield"); cat.say(); // "I am Garfield" 

рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЬрд╛рд╡рд╛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдПрдХ рдирд┐рдпрдорд┐рдд рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
 var Cat = function(name) { this.name = name; this.say = function() { return "I am" + this.name; } } 

рдЬрдм рдЗрд╕ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ new рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рдореНрди рд╣реЛрддрд╛ рд╣реИ:

рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, this рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрд╣рд╛ say() рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рдмрд╛рд░ new Person() рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕реНрдореГрддрд┐ рдореЗрдВ рдПрдХ new Person() рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЪреВрдБрдХрд┐ рдЗрд╕ рдирд┐рд░реНрдорд╛рддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП say() рд╡рд┐рдзрд┐ рд╕рдорд╛рди рд╣реИ, рдЗрд╕реЗ Cat рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ:
 Cat.prototype.say = function() { return "I am " + this.name; }; 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдХрд╣рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ рдХрд┐ this рдСрдмреНрдЬреЗрдХреНрдЯ, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЦрд╛рд▓реА рд╣реИ: рдпрд╣ Cat рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИред

рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ


new рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдирд┐рд░реНрдорд╛рддрд╛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд╡рд╣ рд╡рд╕реНрддреБ рд╣реИ рдЬрд┐рд╕реЗ this рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ this рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд╕реНрддреБ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
 var Cat = function() { this.name = "I am Garfield"; var that = {}; that.name = "I am Cat-woman"; return that; }; var cat = new Cat(); cat.name // "I am Cat-woman" 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдирд┐рд░реНрдорд╛рддрд╛ рд╕реЗ рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЗрд╕ рд╢рд░реНрдд рдкрд░ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд╕реНрддреБ рд╣реИред рдпрджрд┐ рд╣рдо рд▓реМрдЯрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдХрд╣рддреЗ рд╣реИрдВ, рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ false , рддреЛ рдпрд╣ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ред

рдХрдкрдЯреА рдирдпрд╛


рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗрд╡рд▓ new рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдП рдЧрдП рдХрд╛рд░реНрдп рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрд╕ рдСрдкрд░реЗрдЯрд░ рдХреЛ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ? рджреБрднрд╛рд╖рд┐рдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЬрдиреНрдо рджреЗрдЧрд╛ред this рдЪрд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдирд┐рд░реНрдорд╛рддрд╛ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╡рд╕реНрддреБ рдХреЛ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБ (рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ window ):
 function Cat() { this.name = "Garfield"; } //   var cat = new Cat(); typeof cat; // "object" cat.name; // "Garfield" // new: var cat = Cat(); typeof cat; // "undefined" window.name; // "Garfield" 

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

рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛рдПрдБ

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

рд╕реНрдкрд╖реНрдЯ рд╡рд╕реНрддреБ рд╡рд╛рдкрд╕реА

рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд┐рд╕реА рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрд╕рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ:
 function Cat() { var that = {}; that.name = "Garfield"; return that; } 

рдЪрд░ рдирд╛рдо that рдордирдорд╛рдиреЗ рдврдВрдЧ that рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдЙрд╕реА рд╕рдлрд▓рддрд╛ рдХреЗ рд╕рд╛рде, рд╣рдо рд░рд┐рдЯрд░реНрди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ me рдпрд╛ self рдпрд╛ рдЬреЛ рднреА рдЖрдкрдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рд░рд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдПрдХ рдХреА рддрд░рд╣, рд╣рдо рд╢рд╛рдмреНрджрд┐рдХ рдЕрдВрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░ рдХреЗ рдмрд┐рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 function Cat() { return { name: "Garfield" }; } 

рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рдПрдЧрд╛, рднрд▓реЗ рд╣реА рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╣рд╛ рдЬрд╛рдП:
 var first = new Cat(), second = Cat(); first.name; // "Garfield" second.name; // "Garfield" 

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

рд╕реНрд╡-рдирд┐рд░реНрдорд┐рдд рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рдХреНрдпрд╛ this рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд┐рдХрд╛рдп рдореЗрдВ рдЗрд╕ рдирд┐рд░реНрдорд╛рддрд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдФрд░ рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЦреБрдж рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ new рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рдеред рдпрд╣ рдбрд░рд╛рд╡рдирд╛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╕рд░рд▓ рд╣реИ:
 function Cat() { if (!(this instanceof Cat)) { return new Cat(); } this.name = "Garfield"; } Cat.prototype.meow = "Meow!"; var first = new Cat(), second = Cat(); first.name; // "Garfield" second.name; // "Garfield" first.meow; // "Meow!" second.meow; // "Meow!" 

рдпрджрд┐ рдмрд╛рдж рдореЗрдВ рд╣рдорд╛рд░реЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХрд╛ рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЙрд╕рдХреЗ рд╢рд░реАрд░ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдирд╛рдо рдХреЗ рдмрдЬрд╛рдп arguments.callee рдЬрд╛рдБрдЪ рдХрд░рдХреЗ рдЗрд╕рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ:
 if (!(this instanceof arguments.callee)) { return new arguments.callee(); } 

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

рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп


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

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


All Articles