рд╣рдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд▓реЗрдЦрдХ, рдПрдХ рдлреНрд░рдВрдЯ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░, рдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ, рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рдореБрдЦреНрдп рддрд░реАрдХреЛрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди рджрд┐рдпрд╛ред


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

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

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

рддреЛ рдЪрд▓рд┐рдП рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рд╡рд╕реНрддреБ


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рд╡рд╕реНрддреБ рдХреЗрд╡рд▓ рдЧреБрдгреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реА рд╣реИред рдбреЙрдЯреЗрдб ( obj.a ) рдпрд╛ рдмреНрд░реИрдХреЗрдЯреЗрдб рдиреЛрдЯреЗрд╢рди ( obj ['a'] ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдВрдЬреА рддрдХ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдХреБрдВрдЬреА рд╣реЛрдиреЗ рдкрд░ рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

  • рдПрдХ рдорд╛рдиреНрдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИ (рдЗрд╕рдореЗрдВ рдПрдХ рд╕реНрдерд╛рди рд╣реИ, рдПрдХ рдбреИрд╢ рд╣реИ, рдпрд╣ рдПрдХ рдирдВрдмрд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ ...)
  • рдПрдХ рдЪрд░ рд╣реИред

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

рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдореЗрдВ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЧреБрдг рд╣реИ рдЬрд┐рд╕реЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ, рдЖрдк рдЗрд╕реЗ __proto__ рдкрджрдирд╛рдо рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рд╡рд┐рд░рд╛рд╕рдд рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рддреЛ рдЖрдк рдореЗрдореЛрд░реА рдореЗрдВ рдХреЛрдб рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рдзрд┐ рджреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдмрдирд╛рдХрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИред

рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ рддреЛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдПрдХ рд╡рд╕реНрддреБ рд╕реЗ рджреВрд╕рд░реА рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдмрдирд╛рддрд╛ рд╣реИред

рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╢реНрд░реГрдВрдЦрд▓рд╛

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

рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:

var cons = function () {   this.a = 1;   this.b = 2; } var obj = new cons(); </i>  cons.prototype.b = 3; cons.prototype.c = 4; 

рд╡рд┐рдкрдХреНрд╖ рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реИ (рдмрд╕ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕реЗ рдирдП рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред

рдкрд╛рдВрдЪрд╡реАрдВ рдкрдВрдХреНрддрд┐ рдкрд░, рд╣рдо рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдмрдирд╛рддреЗ рд╣реИрдВ - рд╡рд┐рдкрдХреНрд╖ рдХреА рдПрдХ рдирдИ рдкреНрд░рддрд┐ред рдмрдирд╛рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, obj рдХреЛ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕рдВрдкрддреНрддрд┐ рднреА рдорд┐рд▓рддреА рд╣реИред

рдФрд░ рдЕрдм рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ ( 'рдмреА', 'рд╕реА' ) рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
Obj рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

obj.a // 1 - рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдЬреИрд╕рд╛ рд╣реИ, obj.a рдЕрднреА рднреА 1 рд╣реИред
obj.c - obj рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╕реА рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ! рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЗрдПрд╕ рдЕрдм obj рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ рдЗрд╕рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдЧрд╛ рдФрд░ 4 рдХрд╛ рдорд╛рди рд▓реМрдЯрд╛рдПрдЧрд╛ред

рдЕрдм рдЪрд▓рд┐рдП рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ obj.b рдХрд╛ рдореВрд▓реНрдп рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЬрдм рд╣рдо obj.b рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХреНрдпрд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИ ?

Obj.b 2 рд╣реИред рд╣рдордиреЗ рдкреНрд░реЙрдкрд░реНрдЯреА b рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЗрд╕реЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рджрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдм рд╣рдо obj.b рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ , рддрдм рднреА рд╣рдореЗрдВ 2 рдорд┐рд▓рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, obj.b рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж , JS рдЕрдм o b рдкрд░ b рдирд╣реАрдВ рдЦреЛрдЬ рдкрд╛рдПрдЧрд╛ред , рдФрд░ рдЗрд╕рд▓рд┐рдП рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ рдЦреЛрдЬ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗ рдФрд░ рдорд╛рди 3 рд▓реМрдЯрд╛рдПрдВрдЧреЗред

рдЖрдЧреЗ, рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдПрдХ рд╡рд╕реНрддреБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

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


рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдмреНрджрд┐рдХ: рдЖрдЬреНрдЮрд╛ рджреЗрдирд╛ obj = {a: 1};
рд╣рдордиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛: obj ---> Object.prototype ---> null
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, object.prototyp рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ, рд╕рд╛рде рд╣реА рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЪреЗрди рдХрд╛ рдЕрдВрдд рднреА рд╣реИред

Object.create (): var newObj = Object.create (obj);
NewObj рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реЛрдЧреА: newObj ---> obj ---> Object.prototype ---> null

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

ES6 рд╡рд░реНрдЧ:

 class rectangle { constructor(height, width) { this.height = height; this.width = width; } getArea() { return this.height * this.width; } } let square = new rectangle(2, 2); 

рд╕реНрдХреНрд╡рд╛рдпрд░ рдЖрдпрдд рдирд┐рд░реНрдорд╛рддрд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо square.getArea () // 4 , square. рдЙрдкрд▓рдмреНрдзрддрд╛ , рд╕рд╛рде рд╣реА object.prototype рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреМрди рд╕рд╛ рддрд░реАрдХрд╛ рдмреЗрд╣рддрд░ рд╣реИ? рдпрджрд┐ рдЖрдк рдХрдИ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк ES6 рдпрд╛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдПрдХ рдмрд╛рд░ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рд╢рд╛рдмреНрджрд┐рдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред

рдФрд░ рдЕрдм, рдЬрдм рд╣рдордиреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрд╛ рдФрд░ рдирдИ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рдЧрдП, рддреЛ рд╣рдо рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рдмрд╕реЗ рднреНрд░рд╛рдордХ рдкрд╣рд▓реБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд╕реНрддреБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдФрд░ рд╕рдВрд╢реЛрдзрди рдХрд░рдирд╛


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рд╡рд╕реНрддреБрдПрдБ рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░ рдХреА рд╣реЛрддреА рд╣реИрдВ

рдЬрдм рд╣рдо рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ obj = {a: 1}; , рдЪрд░ obj рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдореЗрдореЛрд░реА рдореЗрдВ рдкрддрд╛ рдорд┐рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рдирд╣реАрдВ! рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рд╕рдордЭрдирд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЕрдиреНрдпрдерд╛ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЬрдм рд╣рдо рдПрдХ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ newObj = obj , рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрдореЛрд░реА рдУрдмреНрдЬ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рди рдХрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдИ рдСрдмреНрдЬреЗрдХреНрдЯред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ newObj.a = 2 рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ , рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ obj рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ obj.a 2 рд╣реЛ рдЬрд╛рдП!

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

рд╕рдорд╛рдирддрд╛

рдКрдкрд░ рд╕реЗ рдпрд╣ рднреА рд╣реИ рдХрд┐ рджреЛ рд╡рд╕реНрддреБрдПрдВ рдХрднреА рднреА рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рднрд▓реЗ рд╣реА рдЙрдирдХреЗ рдЧреБрдг рд╕рдорд╛рди рд╣реЛрдВред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЬреЗрдПрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕реНрдерд╛рди рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреЛ рд╡рд╕реНрддреБрдПрдВ рдПрдХ рд╣реА рдореЗрдореЛрд░реА рд╕реЗрд▓ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред

 // Two distinct objects with the same properties are not equal var fruit = {name: 'apple'}; var fruitbear = {name: 'apple'}; fruit === fruitbear; // return false // here fruit and fruitbear are pointing to same object var fruit = {name: 'apple'}; var fruitbear = fruit; fruit === fruitbear; // return true 

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

рдХреБрдЫ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рд╡рд╕реНрддреБ рдкрд░рд┐рд╡рд░реНрддрди

рдорд╛рдирд╛ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ рд╣рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╕реНрддреБ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред Object.assign () рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИред

 var obj = { a : 1, b : 2}; var newObj = Object.assign({}, obj,{a:2}) // {a : 2, b : 2 } 

рдпрджрд┐ рд╣рдо obj рдХреА рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдореВрд▓реНрдп рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо obj рдХреА рдПрдХ рдкреНрд░рддрд┐ рдмрдирд╛рдиреЗ рдФрд░ рдЙрд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП object.assign рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

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

 const obj = {a : 1, b : { a : 1 } }; // b property is an object 

Object.assign () рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдореВрд▓реНрдп рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкреЙрдЗрдВрдЯрд░ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдкреЙрдЗрдВрдЯрд░ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред

рдбреАрдк рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдСрдкрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрдк рдпрд╣рд╛рдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдХреЗрд╡рд▓ рд▓реЛрджрд╢ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ _.cloneDeep рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд╕реНрддреБ рддреБрд▓рдирд╛

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

 JSON.stringify(obj1) === JSON.stringify(obj2) 

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

рдПрдХ рдФрд░ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ рд▓реЛрджрд╢ рд╕реЗ _.рдЗрд╕рдХреНрд╡рд╛рд▓ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЬреЛ рд╡рд╕реНрддреБрдУрдВ рдХреА рдЧрд╣рд░реА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред

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

рдЙрддреНрддрд░ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрд╡рдпрдВ рд╕реЛрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред

рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреА рд▓рдВрдмрд╛рдИ рдХрд╛ рдкрддрд╛ рдХреИрд╕реЗ рд▓рдЧрд╛рдПрдВ?


рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ-рдПрдХ рдХрд░рдХреЗ рд╡рд╕реНрддреБ рдХреЗ рд╕рднреА рдЧреБрдгреЛрдВ рдХреЛ рдЫрд╛рдБрдЯрдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЧрд┐рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ:

  • рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд┐рдзрд┐ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдЙрд╕рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рднреА рдЧрдгрдиреАрдп рдЧреБрдгреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддреА рд╣реИред рд╣рдо рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рдЧрдП (рдФрд░, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ, рд╕рд╛рдордЧреНрд░реА рд╕реАрдЦреА), рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
  • рдСрдмреНрдЬреЗрдХреНрдЯ ред рдпрд╣ рд╡рд┐рдзрд┐ рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдХреА рдЕрдкрдиреА (рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд) рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЧреБрдг рд╣реИрдВред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓рд┐рдП рдмрд┐рдирд╛, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ рдЬрдм рдЖрдк рдХрд┐рд╕реА рдЧреБрдг рдХреЗ рдЧреБрдг рдХреЛ рдЕрд╕рддреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ object.keys рдЕрдВрддрддрдГ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдПрдХ рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИред рдпрд╣ рд╢рд╛рдпрдж рд╣реА рдХрднреА рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ getOwnPropertyNames рдХрд╛рдо рдЖрдПрдЧрд╛ ред
  • getOwnPropertyNames рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЕрдкрдиреА рдХреБрдВрдЬрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ (рджреЛрдиреЛрдВ рдЧрдгрдиреАрдп рдФрд░ рдмреЗрд╢реБрдорд╛рд░)ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЙрд▓реНрд▓реЗрдЦ рдХреЗ рд▓рд╛рдпрдХ:

  • Object.values рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЧрд┐рдирддреА рдЧреБрдгреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИред
  • Object.entries рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЧрд┐рдирддреА рдЧреБрдгреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдФрд░ рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ ред

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

рдРрд╕реА рд╣реА рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ рдЕрд░реЗрдВрдЬрдореЗрдВрдЯ ред рдЕрдВрдд рдореЗрдВ, рд╣рдо рдмрд╕ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ

 let objLength = Object.getOwnPropertyNames(obj).length; 

рдпрджрд┐ рдХреЛрдИ рд╡рд╕реНрддреБ рдЦрд╛рд▓реА рд╣реИ рддреЛ рдХреИрд╕реЗ рдЬрд╛рдВрдЪреЗрдВ?


  1. JSON.stringify (myObj) === "{}" ред рдпрд╣рд╛рдВ рд╣рдо рдлрд┐рд░ рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд░реВрдкрд╛рдВрддрд░рдг рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡рд╕реНрддреБ рдЦрд╛рд▓реА рд╣реИ (рддрд╛рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдирд╣реАрдВ, рд╡рд╕реНрддреБрдУрдВ рдХреА)ред
  2. рдСрдмреНрдЬреЗрдХреНрдЯ .keys (myobj) .length // true ред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдХрд┐рд╕реА рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣рдо Array.prototype рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдВрдкрддреНрддрд┐ рдХреА рд▓рдВрдмрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рд░рдгреА рдореЗрдВ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВред рдЬреЗрдПрд╕ рдореЗрдВ, 0 рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реИ ! рд╣рдо рдЗрд╕реЗ рд╕рдЪ рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВред рдХреЛрдИ рднреА рдЕрдиреНрдп рд╕рдВрдЦреНрдпрд╛ рдЭреВрдареА рд╣реЛ рдЬрд╛рдПрдЧреАред

рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ


рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдм рдЖрдк рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВрдЧреЗред рдЖрдЗрдП рд╕рдВрдХреНрд╖реЗрдк:

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

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реАрдЦрдиреЗ рдХрд╛ рд╕реМрднрд╛рдЧреНрдпред

рдЫрд╡рд┐

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


All Articles