Temporal.PlainDate.prototype.with()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die with()-Methode von Temporal.PlainDate-Instanzen gibt ein neues Temporal.PlainDate-Objekt zurück, das dieses Datum mit einigen durch neue Werte ersetzten Feldern darstellt. Da alle Temporal-Objekte so konzipiert sind, dass sie unveränderlich sind, fungiert diese Methode im Wesentlichen als Setter für die Felder des Datums.
Um die calendarId-Eigenschaft zu ersetzen, verwenden Sie stattdessen die withCalendar()-Methode.
Syntax
with(info)
with(info, options)
Parameter
info-
Ein Objekt, das mindestens eine der von
Temporal.PlainDate.from()anerkannten Eigenschaften (außercalendar) enthält:day,eraunderaYear,month,monthCode,year. Nicht angegebene Eigenschaften verwenden die Werte des ursprünglichen Datums. Sie müssen nur eine vonmonthodermonthCode, und eine voneraunderaYearoderyearbereitstellen, und die andere wird entsprechend aktualisiert. optionsOptional-
Ein Objekt, das die folgende Eigenschaft enthält:
overflowOptional-
Ein String, der das Verhalten angibt, wenn eine Datumskomponente außerhalb des Bereichs liegt. Mögliche Werte sind:
"constrain"(Standard)-
Die Datumskomponente wird auf den gültigen Bereich geklammert.
"reject"-
Ein
RangeErrorwird ausgelöst, wenn die Datumskomponente außerhalb des Bereichs liegt.
Rückgabewert
Ein neues Temporal.PlainDate-Objekt, bei dem die in info angegebenen Felder, die nicht undefined sind, durch die entsprechenden Werte ersetzt werden, und die restlichen Felder vom ursprünglichen Datum kopiert werden.
Ausnahmen
TypeError-
Wird in einem der folgenden Fälle ausgelöst:
infoist kein Objekt.optionsist kein Objekt oderundefined.
RangeError-
Wird in einem der folgenden Fälle ausgelöst:
- Die angegebenen Eigenschaften, die dieselbe Komponente spezifizieren, sind inkonsistent.
- Die angegebenen nicht-numerischen Eigenschaften sind ungültig; z.B. wenn
monthCodein diesem Kalender nie ein gültiger Monatscode ist. - Die angegebenen numerischen Eigenschaften sind außerhalb des Bereichs und
options.overflowist auf"reject"gesetzt. - Das Ergebnis liegt nicht im darstellbaren Bereich, der ±(108 + 1) Tage, oder etwa ±273.972,6 Jahre, vom Unix-Epoch umfasst.
Beispiele
>Verwendung von with()
const date = Temporal.PlainDate.from("2021-07-06");
const newDate = date.with({ day: date.daysInMonth });
console.log(newDate.toString()); // 2021-07-31
const nextDecade = date.with({ year: date.year + 10 });
console.log(nextDecade.toString()); // 2031-07-06
Für weitere Beispiele siehe die Dokumentation zu den einzelnen Eigenschaften, die mit with() gesetzt werden können.
Spezifikationen
| Specification |
|---|
| Temporal> # sec-temporal.plaindate.prototype.with> |