рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛

рдЕрдЪреНрдЫреЗ рджрд┐рди, рд╕рдЬреНрдЬрдиреЛрдВ!

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

рдпрд╣ рдЕрд▓рдЧ рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ
var firstObject = { value: 0, increment: function () { this.value++ ; console.log(this.value); } }; firstObject.increment(); 


рд╣рдо рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреНрдпрд╛ рджреЗрдЦреЗрдВрдЧреЗ?
рдПрдХ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдпрд╣ рдлрд░реНрд╕реНрдЯ рдСрдмрдЬреЗрдХреНрдЯ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдлрдВрдХреНрд╢рди рдСрдмрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред

 var secondObject = { value: 0 }; secondObject.increment = function () { var incrementInternal = function () { this.value++ ; console.log(this.value); } incrementInternal(); } secondObject.increment(); 


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

рд╕реБрдЭрд╛рд╡: рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдХреНрд╕рд░ рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рджрд░рдХрд┐рдирд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдмрдирд╛рдП рд░рдЦрдирд╛:
 var secondObject = { value: 0 }; secondObject.increment = function () { var self = this; var incrementInternal = function () { self.value++ ; console.log(self.value); } incrementInternal(); } secondObject.increment(); 


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ
 var thirdObject = function (value) { this.value = value; this.increment = function () { this.value++ ; console.log(this.value); } } var thObj = new thirdObject(0); thObj.increment(); 


рдмреЗрд╢рдХ, рдХрдВрд╕реЛрд▓ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдПрдХ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдирдпрд╛ рдСрдкрд░реЗрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдиреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдХреЗ рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рд╕реБрдзрд╛рд░ рд╕рдХрддреЗ рд╣реИрдВред
 var thirdObject = function (value) { this.value = value; } thirdObject.prototype.increment = function () { this.value++ ; console.log(this.value); } var thObj = new thirdObject(0); thObj.increment(); 

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

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

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


All Articles