Moment: Object.freeze () рдХреЗ рдмрд╛рдж рд╕рднреА рдЧреИрд░-рдореНрдпреВрдЯреЗрд╢рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдЬрдире░ 2016  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: moment/moment

#1754 рдкрд░ рдЪрд░реНрдЪрд╛ рд╕реЗ @kruncher рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛:

рдореИрдВ рдкрд▓ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ Object.freeze рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдиреЗ рдЖрдо рддреМрд░ рдкрд░ рдореБрдЭреЗ рдЬреЛ рдЪрд╛рд╣рд┐рдП рд╡рд╣ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ; рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдореИрдВрдиреЗ рдЕрднреА рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ:

let now = Object.freeze(moment());
if (now.isSameOrBefore(anotherTime)) { // throws exception
}

рдЕрдкрд╡рд╛рдж:

TypeError: Can't add property _isValid, object is not extensible
 at valid__isValid (C:\git\quick-test\node_modules\moment\moment.js:93:24)
 at Moment.moment_valid__isValid [as isValid] (C:\git\quick-test\node_modules\moment\moment.js:2195:16)
 at Moment.isSame (C:\git\quick-test\node_modules\moment\moment.js:1945:44)
 at Moment.isSameOrBefore (C:\git\quick-test\node_modules\moment\moment.js:1962:21)

рдХреНрдпрд╛ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реЛрдиреЗ рдкрд░ Object.freeze рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ?

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

const moment = require('moment')
const today = Object.freeze(moment()); 
today.toString()
   => 'Tue May 02 2017 10:04:52 GMT-0400'
today.add(1, 'day')
   => moment("2017-05-03T10:04:52.889")
today.toString()
  => 'Wed May 03 2017 10:04:52 GMT-0400'

рд╢рд╛рдпрдж рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬ рдкрд░ Object.freeze рдореЗрд░реЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ 3.x рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рдзрдХреНрдХрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕ рдмреАрдЪ Object.freeze рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╣реИ? /

рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг: 6.10 (~ рд▓реАрдЯрд░)
рдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдг: 2.18.1

@butterflyhug - рдореИрдВ рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рднреА, TypeError рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВред

@SeanDunford - рдпрд╣ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЖрдк 2.x рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред

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

@marwahaha - рд╣рдордиреЗ рдЕрдм

рдареАрдХ рд╣реИ, рдореИрдВ рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛ рдФрд░ рдорд╛рди рд▓реВрдВрдЧрд╛ рдХрд┐ 2.x рдореЗрдВ Object.freeze moment s рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

slavafomin picture slavafomin  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

4rg0n picture 4rg0n  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

danieljsinclair picture danieljsinclair  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nikocraft picture nikocraft  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Shoroh picture Shoroh  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ