рд╕реНрдерд╛рдиреАрдп рднрдВрдбрд╛рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ? рдЖрд░рд╛рдо рд╕реЗ!

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

localStorage = { a: { b: 1 }, c: { d: 2 } } localStorage.ab = 3; 

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд╣реИ рдирд╛?

рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдмрд╣реБрдд рдкрд╣рд▓реЗ, рд▓рдЧрднрдЧ рдЫрд╣ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛: рдХреИрд╕реЗ, рдпрд╣ рд▓рд╛рдирдд рд╣реИ, рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЗ, рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдПрдХ рд╡рд╕реНрддреБ рдХреА рддрд░рд╣ред рдЪреБрдиреМрддреА рд╕реНрд╡реАрдХрд╛рд░ рдХреА!

рдЬреИрд╕рд╛ рдХрд┐ рдХреБрдЦреНрдпрд╛рдд рдЧреАрд╢рд╛ рдХрд╣рддреА рд╣реИ: " рдпрд╣реА рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рд╣реИ ред"

рдЖрдЧреЗ рдкрдврд╝рдирд╛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИред рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рдпрд╣рд╛рдБ рд╣реИ: habrahabr.ru/post/144998


рдореБрдЦреНрдп рдЙрдкрд╡рд╛рдХреНрдп рдХреЗрд╡рд▓ рд╡рд╕реНрддреБ рдкрд░ рд╣реА рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЙрдк-рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рднреА рд╕реЗрдЯрд░ рдХреЛ рд▓рдЯрдХрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдерд╛, рдФрд░ рдЪрд╛рдмрд┐рдпрд╛рдБ рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕реЗ рдмрд╣реБрдд рд╕рд░рд▓рддрд╛ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдЧреЗрдЯреНрдЯрд░ рд▓рдЧрд╛рдПрдВ:

 Object.defineProperty( window, 'objectLocalStorage', { //  -  get: function() { return {}; } }); 

рдЕрдм рд╣рдо рдЪрд╛рдмрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рд╕реМрдВрдк рд░рд╣реЗ рд╣реИрдВ,

 window.objectLocalStorage.a = 1; 

рдЧреЗрдЯрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рддреЛ, рд╕рдм рдХреБрдЫ рдЕрдкрдорд╛рдирдЬрдирдХ рд░реВрдк рд╕реЗ рд╕рд░рд▓ рд╣реИред

 (function() { // ,    ,      //       json    var _objectLocalStorage = JSON.parse( localStorage.getItem( 'objectStorage' ) ) || {}, timer = null; //     objectLocalStorage  window       //   ,    localStorage,   ,   Object.defineProperty( window, 'objectLocalStorage', { get: function() { // timer   ,         //   ,    localStorage    , //     // setTimeout    >< ,    if( timer === null ) { timer = setTimeout( function(){ var stringified = JSON.stringify( _objectLocalStorage ); //   :      , //     ,    if( stringified !== localStorage.getItem( 'objectStorage' ) ) { //  localStorage.setItem( 'objectStorage', stringified ); } timer = null; }, 0); } return _objectLocalStorage; }, //  ,  objectLocalStorage    set: function( v ) { _objectLocalStorage = v; localStorage.setItem( 'objectStorage', JSON.stringify( _objectLocalStorage ) ); } } ); })(); 

(рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрдерд╛рдиреАрдпрд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдорд░ рдХреЛ рдХреЗрд╡рд▓ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдкрд░рд┐рдгрд╛рдо рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рдирд┐рдпрдорд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╣реИ, рдЪреВрдВрдХрд┐ _objectLocalStorage рддреБрд░рдВрдд рд▓реМрдЯрддрд╛ рд╣реИред рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реИред)

рдХреИрд╕реЗ рдХрд░реЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓?

рд╣рдо рдЕрдкрдиреА js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдкреЗрд╕реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

 objectLocalStorage = { a: 4, b: {c: 2} }; objectLocalStorage.bc = {d: 5} 

рдкреГрд╖реНрда рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░реЗрдВ

 console.log( objectLocalStorage ); // { a: 4, b: {c: {d: 5}} } 


рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

GetL objectLocalStorage рдХреЗ рд╕рд╛рде, рд╕реНрдерд╛рдиреАрдп _objectLocalStorage рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЬрдм рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯрдмреНрд▓рд╛рд╕реНрдЯрд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рд╕рдмреЛрдмрд┐рдЬ рдХреБрдВрдЬреА рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдХреБрдЫ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ _objectLocalStorage рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдЗрд╕рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣ рд╣реИ
 objectLocalStorage.ab = 5; 
рдЙрд╕реА рдкреНрд░рдХрд╛рд░
 _objectLocalStorage.ab = 5; 

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

рд╡рд╣, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рдореЗрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛:

рд▓реЗрдХрд┐рди рдлрд┐рд░, рдореИрдВ рд╕рд┐рд░реНрдл рдЦреБрд╢реА рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ :)

рдЖрдкрдХреЛ рдХрд┐рд░рдг рджреЗрддрд╛ рд╣реИред

рдпреБрдкреАрдбреА
рдореИрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реНрдХреЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрдХреНрдд рд╡реИрдХрд▓реНрдкрд┐рдХ, рд╕рд░рд▓ рдФрд░ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдкрд░ рдЕрд▓рдЧ рд╕реЗ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрд▓рдПрд╕ (рд╕рдордп-рд╕реАрдорд╛ рдФрд░ рдСрдирдмреЙрд░реНрдлрд╝рди рджреНрд╡рд╛рд░рд╛) рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдФрд░ рдПрдХ рдирд┐рдпрдорд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкрдврд╝рдирд╛ рдФрд░ рд▓рд┐рдЦрдирд╛ рдореБрдЭреЗ рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдбреАрд░рд┐рд╢рд┐рдпрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

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


All Articles