MomentJSオブジェクトは、状態の変更可能(変更可能)なオブジェクトです。 MomentJSオブジェクトでadd
を呼び出すと、それが変更されますが、新しいオブジェクトは作成されません。同じオブジェクトへの参照を返します。オブジェクト
+−−−−−−−−−+
res−>| (array) |
+−−−−−−−−−+ +−−−−−−−−−−+
| 0 |−−−−−−−>| (object) |
+−−−−−−−−−+ +−−−−−−−−−−+ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
| d: |−−>| (Date) |
+−−−−−−−−−−+ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
| [[TimeValue]]: 2017−03−27T18:00:00+01:00 |
+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
あなた
let nextTime = moment(res[res.length - 1]).add(1, 'hour');
// ...
res.push(nextTime);
修正をしてres
の上にそれを別の参照プッシュ:だから、あなたはこれで始めると言う
+−−−−−−−−−+
res−>| (array) |
+−−−−−−−−−+ +−−−−−−−−−−+
| 0 |−−−−+−−>| (object) |
| 1 |−−−/ +−−−−−−−−−−+ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
+−−−−−−−−−+ | d: |−−>| (Date) |
+−−−−−−−−−−+ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
| [[TimeValue]]: 2017−03−27T19:00:00+01:00 |
+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
お知らせをどのようにオブジェクトの状態( [MomentJSオブジェクトで使用されているDate
の[[TimeValue]])が変更されました。あなたは再びそれを行う場合
、私たちは再びそれを更新します。
+−−−−−−−−−+
res−>| (array) |
+−−−−−−−−−+ +−−−−−−−−−−+
| 0 |−−−−+−−>| (object) |
| 1 |−−−/ +−−−−−−−−−−+ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
| 2 |−−/ | d: |−−>| (Date) |
+−−−−−−−−−+ +−−−−−−−−−−+ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
| [[TimeValue]]: 2017−03−27T20:00:00+01:00 |
+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
は代わりに、新しいオブジェクトを作成します。オリジナルのクローンをmoment
とすることで、これを行うことができます。
let nextTime = moment(res[res.length - 1]).add(1, 'hour');
// ------------^^^^^^^ ----------------^
// ...
res.push(nextTime);
あなたがそれを行う場合は、同じ出発点から、我々が得る:
+−−−−−−−−−+
res−>| (array) |
+−−−−−−−−−+ +−−−−−−−−−−+
| 0 |−−−−−−−>| (object) |
| 1 |−−−−+ +−−−−−−−−−−+ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
| 2 |−−+ | | d: |−−>| (Date) |
+−−−−−−−−−+ | | +−−−−−−−−−−+ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
| | | [[TimeValue]]: 2017−03−27T18:00:00+01:00 |
| | +−−−−−−−−−−+ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
| +−−>| (object) |
| +−−−−−−−−−−+ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
| | d: |−−>| (Date) |
| +−−−−−−−−−−+ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
+−−−−> | [[TimeValue]]: 2017−03−27T19:00:00+01:00 |
+−−−−−−−−−−+ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
| (object) |
+−−−−−−−−−−+ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
| d: |−−>| (Date) |
+−−−−−−−−−−+ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
| [[TimeValue]]: 2017−03−27T20:00:00+01:00 |
+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+
'nextTime'、MomentJSインスタンスは何ですか? –
@TJCrowderはい、質問を更新しました –