C'è un plugin Moment.js su NPM chiamato frozen-moment - È possibile utilizzare moment().freeze()
al posto di Object.freeze(moment())
.
In caso contrario, la vaniglia Moment.js ha un metodo clone
che dovrebbe aiutare a evitare problemi mutabilità, così si potrebbe fare qualcosa di simile:
var a = moment(),
b = a.clone(); // or moment(a)
UPDATE:
Sono passati due anni da quando ho scritto questa risposta In questo momento, è emersa un'altra libreria per la gestione delle date: https://date-fns.org/
Questa libreria è immutabile per impostazione predefinita e segue un'architettura modulare e funzionale, il che significa che è più adatta allo scuotimento degli alberi e al client- impacchettatura laterale. Se stai lavorando a un progetto che fa ampio uso di Webpack sul lato client, e scopri che Moment.js ti dà problemi con la tua build, o anche se la mutabilità di Moment.js ti causa un sacco di mal di testa, allora dovrebbe dare date-fns
una prova.
E il codice sembra ...? Se si desidera memorizzare il valore iniziale, memorizzare il valore temporale, disponibile utilizzando il metodo * valueOf * o la conversione implicita in numero. – RobG
una volta impostata la variabile, è impostata, non cambierà automaticamente, quindi cerca di non impostarla più e più volte –