У меня есть этот код.start
- это 30 м до end
.Когда я вычитаю еще 5 м, это влияет и на end
:
let start = moment().subtract(30,"m");
let end = moment();
console.log(start); // 11:00
console.log(end); // 11:30
start = end.subtract(35,"m");
console.log(start); // 10:55
console.log(end); // 10:55
Я понимаю, почему это происходит - потому что метод subtract () изменяет переменную, для которой вызывается.Поэтому я использовал другую переменную new_time
, чтобы попытаться остановить воздействие на end
:
let start = moment().subtract(30,"m");
let end = moment();
console.log(start); // 11:00
console.log(end); // 11:30
let new_time = end;
start = new_time.subtract(35,"m");
console.log(start); // 10:55
console.log(end); // 10:55
Но на end
все еще влияют!Зачем?!Как я могу заставить мой код работать ...
Пример кода здесь https://codepen.io/anon/pen/BvXGEW
Редактировать: Я только что прочитал о моменте клонирования , который я могу использоватьчтобы решить мою проблему, но я все еще не понимаю, как назначение совершенно другой переменной может повлиять на исходную переменную ...