В настоящий момент. js, где найти методы, которые изменяют дату - PullRequest
0 голосов
/ 29 апреля 2020

Момент. js упоминает, что данные являются изменяемыми здесь и, следовательно, если вы скажете:

var a = moment('2016-01-01'); 
var b = a.add(1, 'week'); 
a.format();
"2016-01-08T00:00:00-06:00"

Данные в a изменились при наивном изменении b без использование .clone()

В процессе отладки я не уверен, вызваны ли ошибки логикой c моего кода или изменением данных. В результате я спамил .clone() везде, что снижает читабельность.

Есть ли список методов, которые изменяют данные в данный момент. js?

Примеры:

  • Безопасно предположим, что такие методы, как .add, .subtract
  • как насчет других методов, таких как .diff?
  • как насчет оператора равенства в два момента?

Есть ли список таких методов? Документы действительно хорошо показывают, что код может сделать, но у меня возникают проблемы с поиском того, что делает код .

Ответы [ 2 ]

2 голосов
/ 29 апреля 2020

Вы можете использовать этот плагин и избежать спама методом клонирования. Как правило, данные изменяются в данный момент. js, и это обычно создает ошибки.

1 голос
/ 29 апреля 2020

Во-первых, я бы предположил, что все методы, перечисленные в Момент JS do c в категории Манипулировать, и все сеттеры изменят вашу дату.

Между тем, другие методы и получатели не изменят вашу дату. Это будет первое правило, которое я буду использовать. Если вы сомневаетесь, используйте jsFiddle, чтобы выполнить быстрый тест, чтобы удостовериться, что мутации не задействованы.

...