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

рдПрдирдмреА: рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рди рд╕реЗ рд╕реВрдЪрдирд╛ рдХреЛ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдЕрдиреБрднрд╡реА рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреА рджреЗрдЦрд░реЗрдЦ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣рд╛рдВ рд╣рдо рдЙрди рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╕реНрддреБрдУрдВ рдХреА рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдЫрд┐рдкреА рд╣реБрдИ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрдЯрд┐рд▓рддрд╛рдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрддреНрддрд░ рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдВрдЧреЗ:
- рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП?
- рдПрдХреНрд╕реЗрд╕ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдЧреБрдг рд╣реИрдВ рдФрд░ рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдХреНрдпрд╛ рд╣реИрдВ?
- рдХреИрд╕реЗ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдпрд╛ рдЫрд┐рдкреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП?
- рдХреБрдЫ рдЧреБрдг
for-in
рд▓реВрдк рдореЗрдВ рдпрд╛ Object.keys()
рд╡рд┐рдзрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдХреНрдпреЛрдВ рдирд╣реАрдВ рджреЗ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВ? - рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рд╕рдВрд╢реЛрдзрди рд╕реЗ "рд╕реБрд░рдХреНрд╖рд┐рдд" рдХреИрд╕реЗ рдХрд░реЗрдВ?
- рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рдорд╛рди рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдХреИрд╕реЗ рд╕рдордЭреЗрдВ:
obj.id = 5; console.log(obj.id)
рдСрдмреНрдЬреЗрдХреНрдЯ рдЧреБрдг рдХреЗ рдкреНрд░рдХрд╛рд░
тЦН рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рдг рдЧреБрдг
рдЖрдкрдиреЗ рд╕рдВрднрд╡рддрдГ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реА рдЕрдирдЧрд┐рдирдд рд╡рд╕реНрддреБрдПрдВ рдмрдирд╛рдИ рд╣реИрдВ:
const obj = { name: 'Arfat', id: 5 } obj.name
рдУрдмреНрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ
name
рдФрд░
id
рдЧреБрдгреЛрдВ рдХреЛ рдбреЗрдЯрд╛
obj
рдЧреБрдг, рдпрд╛ "рдбреЗрдЯрд╛ рдЧреБрдг" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рдкрд░рд┐рдЪрд┐рдд рдЧреБрдг рд╣реИрдВ рдЬреЛ рд▓рдЧрд╛рддрд╛рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧреБрдг рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ?
тЦН рдкрд╣реБрдБрдЪ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЧреБрдг
рдЗрди рдЧреБрдгреЛрдВ рдХреЛ рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ рд╕реА # рдпрд╛ рдкрд╛рдпрдерди рдЬреИрд╕реА рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рднреА рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХреНрд╕реЗрд╕рд░ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдкрддреНрддрд┐ рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реИ -
get
рдФрд░
set
ред
рдРрд╕реЗ рдЧреБрдгреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╕рдордп, рдкрд╛рд░рдВрдкрд░рд┐рдХ
:
рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
const accessorObj = { get name() { return 'Arfat'; } }; accessorObj.name;
accesorObj
рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдФрд░
accesorObj
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░реЗрдВред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЕрдм рд╡реЗ рдПрдХ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред рдкрд╣рд▓реА рд╡рд╕реНрддреБ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╕рдордп, рд╣рдордиреЗ рдлрд╝рдВрдХреНрд╢рди рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рдмрд╛рдж, рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдПрдХ рд╕рдорд╛рди рд╕рдВрдкрддреНрддрд┐ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдХреЗ рдмрд╛рдж рдХреЛрд╖реНрдардХ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣реА рд╣реИ,
accessorObj.name();
рддрд░рд╣ рдПрдХ рдбрд┐рдЬрд╛рдЗрди
accessorObj.name();
рдЧрд▓рддред
рдЬрдм
accessorObj.name
рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рдпрд╛рдиреА рдЬрдм рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рджрд┐рдпрд╛ рдЧрдпрд╛ рдорд╛рди
name
рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдорд╛рди рдмрди рдЬрд╛рддрд╛ рд╣реИред
get
рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЧреЗрдЯрд░реНрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдЕрдкрдирд╛ рдЙрджрд╛рд╣рд░рдг рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ рдФрд░
accessorObj
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ
name
рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрд╣рддреЗ рд╣реИрдВ, рдХрдорд╛рдВрдб
accessorObj.name = 'New Person';
рдЪрд▓рд╛рдХрд░
accessorObj.name = 'New Person';
, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпрд╣рд╛рдБ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕реЗрдЯрд░ рдлрд╝рдВрдХреНрд╢рди
name
рд╕рд╛рде рд╕рдВрдмрджреНрдз рдирд╣реАрдВ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдЧреБрдгреЛрдВ рддрдХ рдирдП рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдЖрджреЗрд╢ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рдЧреЗрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рдЧреЗрдЯреНрдЯрд░ рдФрд░ рд╕реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
const accessorObj = { _name: 'Arfat', get name() { return this._name; }, set name(value) { this._name = value; } };
рд╕реЗрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдм рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдХреБрдЫ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо
_name
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдПрдХ "рдирд┐рдЬреА" рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рддреЗ рд╣реИрдВред рдРрд╕реА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдХрд╛ рдкрд╣рд▓рд╛ рдЪрд░рд┐рддреНрд░ рдПрдХ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рд╣реИ, рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╕рдВрдХреЗрдд рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрдВрддрд░рд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо
name
рд╡рд╕реНрддреБ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдФрд░ рд╕реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдирд┐рдпрдорд┐рдд рд╣реЛрддреА рд╣реИред
рдЙрд╕реА рд╕рдордп,
_name
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ,
_name
рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
const obj = { get name() { return this._name.toUpperCase(); }, set name(value) { this._name = value; }, get id() { return this._id.toString(2);
рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо, рд╡реИрд╕реЗ, рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рджрд┐рдП рдЧрдП рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрддреНрддрд░ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдХреЛрдб рдореЗрдВ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддрд╛ рд╣реИред
рдЕрдЧрд░ рдЖрдкрдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд╕рд╛рдзрд╛рд░рдг рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рддреЛ рдХрд┐рд╕реА рдХреЛ рдПрдХреНрд╕реЗрд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрдЧреА рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд▓реЙрдЧ рдХрд░рдиреЗ рдпрд╛ рд╕рдВрдкрддреНрддрд┐ рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдПрдХреНрд╕реЗрд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЧреБрдг рд╣рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рднреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдФрд░ рд╕рд╛рдзрд╛рд░рдг рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕рд░рд▓рддрд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рджреЗрддреЗ рд╣реИрдВред рдРрд╕реА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдпрд╣рд╛рдБ рдФрд░ рдкрдврд╝реЗрдВред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╛рдорд╛рдиреНрдп рдЧреБрдгреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХреНрд╕реЗрд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЧреБрдгреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ? рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред
рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░реНрд╕
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреБрдВрдЬреА рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╕реАрдзрд╛ рдкрддреНрд░рд╛рдЪрд╛рд░ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИред
тЦН рд╕рдВрдкрддреНрддрд┐ рдЧреБрдг
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдХреБрдВрдЬреА рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдореВрд▓реНрдп рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрддреА рд╣реИред рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдореЗрдЯрд╛рдбрд╛рдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрдХ
:
рдЬреЛрдбрд╝реА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред
рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рдЙрдирдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЛ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЫрд╣ рд╕рдВрдкрддреНрддрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:
[[Value]]
[[Get]]
[[Set]]
[[Writable]]
[[Enumerable]]
[[Configurable]]
[[]]
рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо рдХреНрдпреЛрдВ рд╣реИрдВ? рдбрдмрд▓ рдХреЛрд╖реНрдардХ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпреЗ рднрд╛рд╖рд╛ рдХреЗ рдЖрдВрддрд░рд┐рдХ рддрдВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЗрдХрд╛рдЗрдпрд╛рдБ рд╣реИрдВред рдПрдХ JS рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрди рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╕реАрдзреЗ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреБрдХреНрдд рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рд╕реЗ рд▓реА рдЧрдИ рдирд┐рдореНрди рдЫрд╡рд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░
рдХрд░реЗрдВ , рдЬрд┐рд╕ рдкрд░ рдЖрдк рд╡рд╕реНрддреБ рдФрд░ рдЙрд╕рдХреЗ рдЧреБрдгреЛрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд╕реНрддреБ рдФрд░ рдЙрд╕рдХреЗ рдЧреБрдгреЛрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБрд╣рдорд╛рд░реА рд╡рд╕реНрддреБ рдХреА 2 рдХреБрдВрдЬрд┐рдпрд╛рдБ рд╣реИрдВ -
x
рдФрд░
y
ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ, рд╡рд╕реНрддреБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд┐рдЫрд▓реЗ рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдХреЗ рд╕рдорд╛рди? рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП
Object.getOwnPropertyDescriptor()
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рд╡рд╕реНрддреБ рдФрд░ рдЙрд╕рдХреА рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдо рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЧреБрдгреЛрдВ рд╕реЗ рдпреБрдХреНрдд рдПрдХ рд╡рд╕реНрддреБ рджреЗрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
const object = { x: 5, y: 6 }; Object.getOwnPropertyDescriptor(object, 'x');
рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕рдВрдкрддреНрддрд┐ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдЙрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдПрдХ рд╣реА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рднреА рдЫрд╣ рдЧреБрдг рдирд╣реАрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
- рдпрджрд┐ рд╣рдо рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЧреБрдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓
[[Value]]
, [[Writable]]
, [[Enumerable]]
рдФрд░ [[Configurable]]
рдЧреБрдг рд╣реЛрдВрдЧреЗред [[Value]]
рдФрд░ [[Writable]]
рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рдкрд╣реБрдВрдЪ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЧреБрдг, [[Get]]
рдФрд░ [[Set]]
рдЧреБрдг рд╣реИрдВред
] [[рдореВрд▓реНрдп]]
рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХрд╛ рд╕рдВрдкрддреНрддрд┐ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдХреНрдпрд╛ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рдо рдлреЙрд░реНрдо
object.x
рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рд╡рд╣ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬреЛ
[[Value]]
рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИред рдЬрдм рдЖрдк рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╡рд╣реА рдмрд╛рдд рд╣реЛрддреА рд╣реИред
] [[рдЬрд╛рдУ]]
рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИ, рдЬреЛ рдПрдХ рдЧрдЯрд░ рд╕рдВрдкрддреНрддрд┐ рд╣реИред рдХрд┐рд╕реА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддрд░реНрдХреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
] [[рд╕реЗрдЯ рдХрд░реЗрдВ]]
рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рд╕реЗрдЯрд░ рдХреА рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рддреЗ рд╕рдордп рдШреЛрд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд▓рд┐рдВрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЙрд╕ рдореВрд▓реНрдп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╕реМрдВрдкрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереА, рдЕрд░реНрдерд╛рдд, рдпрд╣ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдПрдХ рдирдпрд╛ рдореВрд▓реНрдп рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
const obj = { set x(val) { console.log(val)
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рджрд╛рдИрдВ рдУрд░ рд╕реЗрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ
val
рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрд╣рд╛рдВ рд╡рд╣ рдХреЛрдб рд╣реИ рдЬреЛ рдмрд╕рдиреЗ рд╡рд╛рд▓реЛрдВ рдФрд░ рдЧреЗрдЯрд░реНрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред
Itable [[рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп]]
рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдПрдХ рдмреВрд▓рд┐рдпрди рдорд╛рди рд░рдЦрддреА рд╣реИред рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдореВрд▓реНрдп рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рдпрд╣рд╛рдВ
false
рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
Um [[рдЕрд╕рдВрдЦреНрдп]]
рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдореВрд▓реНрдп рднреА рдпрд╣рд╛рдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛
for-in
рд▓реВрдк
for-in
рд╕рдВрдкрддреНрддрд┐ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИред рдпрджрд┐ рдпрд╣ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ
true
, рддреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЪрдХреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред
Ur [[рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп]]
рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдмреВрд▓рд┐рдпрди рдорд╛рди рджреНрд╡рд╛рд░рд╛ рднреА рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐
false
рдЗрд╕рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╣реЛрддрд╛ рд╣реИ:
- рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ред
- рдЖрдк рдЙрди рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рдПрдХреНрд╕реЗрд╕ рд╡рд┐рдзрд┐рдпреЛрдВ, рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдЧреБрдгреЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рдРрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рд╕реЗ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
- рдЗрд╕реЗ рд╕рдВрдкрддреНрддрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рди рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреА рдЬрд╛рдПрдЧреАред рдпрд╣реА рд╣реИ,
[[Enumerable]]
, [[Configurable]]
, [[Get]]
рдФрд░ [[Set]]
рдХреЗ рдореМрдЬреВрджрд╛ рдореВрд▓реНрдп рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реЗрдВрдЧреЗред
рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ
false
рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рднрд╛рд╡ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рднреА рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЧреБрдг, рдЧреБрдгреЛрдВ рдкрд░ рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЙрди рдкрд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реА рддрд░рд╣:
- рдпрджрд┐ рдпрд╣ рдПрдХ рдРрд╕реА рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИ, рддреЛ
[[Writable]]
рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдХреЗрд╡рд▓ true
рд╕реЗ false
рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред - рдЬрдм рддрдХ
[[Writable]]
рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ false
рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ false
, [[Value]]
рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди [[Writable]]
рдФрд░ [[Configurable]]
рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ false
, рд╕рдВрдкрддреНрддрд┐ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп, рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдФрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реЛ рдЬрд╛рдПрдЧреАред
рд╡рд┐рд╡рд░рдгрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдЕрдм рдЬрдм рд╣рдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рдЧрдП рд╣реИрдВ, рддреЛ рд╣рдо рд╕реНрд╡рдпрдВ рд╕реЗ рдкреВрдЫреЗрдВрдЧреЗ рдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп рд╣реИрдВред рдЖрдЗрдП рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред
тЦН рд╡рд┐рдзрд┐ Object.getOwnPropertyDescriptor ()
рд╣рдо рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рд╡рд┐рдзрд┐ рд╕реЗ рдорд┐рд▓ рдЪреБрдХреЗ рд╣реИрдВред рдпрд╣, рдПрдХ рд╡рд╕реНрддреБ рдФрд░ рдЙрд╕рдХреА рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдо рд▓реЗрддреЗ рд╣реБрдП, рдпрд╛ рддреЛ
undefined
рдпрд╛ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╡рд┐рд╡рд░рдгрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ рджреЗрддрд╛ рд╣реИред
тЦН рд╡рд┐рдзрд┐ Object.defineProperty ()
рдпрд╣ рдПрдХ рд╕реНрдерд┐рд░
Object
рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдЧреБрдг рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рдореМрдЬреВрджрд╛ рдЧреБрдгреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдпрд╣ рддреАрди рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ - рдПрдХ рд╡рд╕реНрддреБ, рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдо рдФрд░ рдПрдХ рд╡рд░реНрдгрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБред рдпрд╣ рд╡рд┐рдзрд┐ рд╕рдВрд╢реЛрдзрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рджреЗрддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
const obj = {};
рдЗрд╕реЗ Node.js. рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреЛрдб рдХрд╛рдлреА рдмрдбрд╝рд╛ рдирд┐рдХрд▓рд╛, рд▓реЗрдХрд┐рди, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рд╣рдо рдЗрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ, рдкреНрд░рдкрддреНрд░
// #n
рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реБрдПред
#1
рдЦрдВрдб рдореЗрдВ
#1
рд╣рдо
defineProperty
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдУрдмреНрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ,
id
рдкреНрд░реЙрдкрд░реНрдЯреА рдирд╛рдо рдФрд░ рдПрдХ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓
value
рдкреНрд░реЙрдкрд░реНрдЯреА рд╣реЛрддреА рд╣реИ, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐
42
[[Value]]
рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк
[[Enumerable]]
рдпрд╛
[[Configurable]]
рдЬреИрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдорд╛рди рдирд╣реАрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ
false
рд╕реЗрдЯ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ,
id
рд╕рдВрдкрддреНрддрд┐ рдХреЗ
[[Writable]]
,
[[Enumerable]]
рдФрд░
[[Configurable]]
рдЧреБрдг
false
ред
#2
рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдЬрдЧрд╣ рдореЗрдВ, рд╣рдо рдХрдВрд╕реЛрд▓ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдЗрд╕рдХреА
id
рдкреНрд░реЙрдкрд░реНрдЯреА рдиреЙрди-рдПрдиреЗрдорд░реЗрдмрд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрдкрддреНрддрд┐ рдореМрдЬреВрдж рд╣реИ, рдЬреЛ рдХрдорд╛рдВрдб
#3
рджреНрд╡рд╛рд░рд╛ рдЕрдкрдиреЗ рд╕рдлрд▓ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЛ рд╕рд╛рдмрд┐рдд рдХрд░рддреА рд╣реИред
рдПрдХ рд╡рд╕реНрддреБ (рдЯреБрдХрдбрд╝рд╛
#4
) рдмрдирд╛рдирд╛, рд╣рдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ,
[[Writable]]
рдХреЛ
false
рд╕реЗрдЯ рдХрд░реЗрдВред
#5
рдФрд░
#7
рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде
#7
рд╣рдо
name
рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдмреАрдЪ (рдЦрдВрдб
#6
) рд╣рдордиреЗ рдЗрд╕ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЗрд╕ рдСрдкрд░реЗрд╢рди рдиреЗ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдирд╣реАрдВ рдмрджрд▓рд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА
[[Writable]]
рд╡рд┐рд╢реЗрд╖рддрд╛
false
рд╕реЗрдЯ рд╣реИред рдирддреАрдЬрддрди, рджреЛрдиреЛрдВ рдХрдорд╛рдВрдб рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЗ рд╣реИрдВред
рдХрдорд╛рдВрдб
#8
id
рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рдпрд╛рд╕ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЗрд╕рдХреА
[[Configurable]]
рд╡рд┐рд╢реЗрд╖рддрд╛
false
, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЯреАрдо
#9
рд╕реЗ рд╕рд╛рдмрд┐рдд рд╣реЛрддрд╛ рд╣реИред
Fragment
#10
Object.defineProperties () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдпрд╣ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐
defineProperty()
рдлрд╝рдВрдХреНрд╢рди, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдХреЙрд▓ рдореЗрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдХрдИ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐
defineProperty()
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╡рд╕реНрддреБ рд╕реБрд░рдХреНрд╖рд╛
рд╕рдордп-рд╕рдордп рдкрд░, рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрд╛рд╣рд░реА рд╣рд╕реНрддрдХреНрд╖реЗрдк рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдЧрд▓рддреА рд╕реЗ рдмрджрд▓рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ рдЬрд┐рд╕реЗ рдмрджрд▓рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рддреАрди рдореБрдЦреНрдп рддрд░реАрдХреЗ рд╣реИрдВред
тЦН рд╡рд┐рдзрд┐ Object.preventExtensions ()
Object.preventExtensions()
рд╡рд┐рдзрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддреА рд╣реИ,
Object.preventExtensions()
рдЗрд╕рдореЗрдВ рдирдП рдЧреБрдг рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рд╡рд╕реНрддреБ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЧреИрд░-рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп рдмрдирд╛рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдк рдРрд╕реА рд╡рд╕реНрддреБ рд╕реЗ рдЧреБрдг рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
const obj = { id: 42 }; Object.preventExtensions(obj); obj.name = 'Arfat'; console.log(obj);
рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╡рд╕реНрддреБ рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк
Object.isExtensible()
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣
true
, рддреЛ рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдирдП рдЧреБрдг рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
тЦН рд╡рд┐рдзрд┐ Object.seal ()
seal()
рд╡рд┐рдзрд┐ "рд╕реАрд▓" рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
- рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирдП рдЧреБрдгреЛрдВ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ (рдЗрд╕рдореЗрдВ рдпрд╣
Object.preventExtensions()
рд╕рдорд╛рди рд╣реИ)ред - рдпрд╣ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рднреА рдореМрдЬреВрджрд╛ рдЧреБрдгреЛрдВ рдХреЛ рдЧреИрд░-рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рдмрдирд╛рддрд╛ рд╣реИред
- рдореМрдЬреВрджрд╛ рдЧреБрдгреЛрдВ рдХреЗ рдорд╛рди, рдпрджрд┐ рдЙрдирдХреА
[[Writable]]
рд╡рд┐рд╢реЗрд╖рддрд╛ false
рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдирддреАрдЬрддрди, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдирдП рдЧреБрдгреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдЗрд╕рдореЗрдВ рдореМрдЬреВрдж рдЧреБрдгреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рд░реЛрдХрддреА рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
const obj = { id: 42 }; Object.seal(obj); delete obj.id
рдСрдмреНрдЬреЗрдХреНрдЯ "рд╕реАрд▓" рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣
Object.isSealed()
рд▓рд┐рдП, рдЖрдк
Object.isSealed()
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
тЦН рд╡рд┐рдзрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ.рдлреНрд░реАрдЬ ()
freeze()
рдкрджреНрдзрддрд┐ рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ "рдлреНрд░реАрдЬрд╝" рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдЙрдЪреНрдЪрддрдо рд╕рдВрднрд╡ рд╕реНрддрд░ рд╕реЗ рд▓реИрд╕ рдХрд░рддреА рд╣реИред рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
Object.seal()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реАрд▓ рдХрд░рддрд╛ рд╣реИред- рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рдЧреБрдгреЛрдВ рдХреЗ рд╕рдВрд╢реЛрдзрди рдХреЛ рдордирд╛ рдХрд░рддрд╛ рд╣реИред
- рд╕рдВрдкрддреНрддрд┐ рд╡рд┐рд╡рд░рдгрдХреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдордирд╛ рдХрд░реЗрдВред
рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
const obj = { id: 42 }; Object.freeze(obj); delete obj.id
рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣
Object.isFrozen()
рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "рдЬрдореЗ рд╣реБрдП" рд╣реИред
Used рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди
рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрд░реЛрдХреНрдд рддрд░реАрдХреЗ рдХреЗрд╡рд▓ рдЙрдирдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реИрдВред
рдпрд╣рд╛рдВ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рддрд░реАрдХреЛрдВ рдкрд░ рдПрдХ рд╕рд╛рд░рд╛рдВрд╢ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ, рдЬрд┐рд╕реЗ
рдпрд╣рд╛рдВ рд╕реЗ рд▓рд┐рдпрд╛
рдЧрдпрд╛ рд╣реИ ред
| рд╕рдВрдкрддреНрддрд┐ рдирд┐рд░реНрдорд╛рдг
| рд╕рдВрдкрддреНрддрд┐ рдкрдврд╝рдиреЗ
| рд╕рдВрдкрддреНрддрд┐ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд
| рд╕рдВрдкрддреНрддрд┐ рдирд┐рдХрд╛рд▓рдирд╛
|
Object.freeze()
| - | +
| - | - |
Object.seal()
| - | +
| +
| - |
Object.preventExtensions()
| - | +
| +
| +
|
рдкрд░рд┐рдгрд╛рдо
рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд┐рддрдиреА рдмрд╛рд░ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЬрд╛рдирдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЙрдирдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рдХрд░ рдЖрдкрдиреЗ рдЬреЛ рд╕реАрдЦрд╛ рд╡рд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдм рдЖрдк рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрддреНрддрд░ рдЬрд╛рдирддреЗ рд╣реИрдВред
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ?