Temporal.PlainTime.prototype.valueOf()
Temporal.PlainTime
实例的 valueOf()
方法会抛出 TypeError
,这可以阻止 Temporal.PlainTime
实例在算术或比较操作中被 隐式转换为原始值。
语法
js
valueOf()
参数
无。
返回值
无。
异常
TypeError
-
总是抛出。
描述
由于 原始值转换 和 数字转换 都会在调用 toString()
之前调用 valueOf()
,因此如果 valueOf()
不存在,则像 time1 > time2
这样的表达式会隐式地将它们作为字符串进行比较,这可能会产生意外的结果。通过抛出 TypeError
,Temporal.PlainTime
实例可以阻止此类隐式转换。您需要使用 Temporal.PlainTime.prototype.toString()
显式地将它们转换为字符串,或者使用 Temporal.PlainTime.compare()
静态方法来比较它们。
示例
Temporal.PlainTime 上的算术和比较操作
对 Temporal.PlainTime
实例的所有算术和比较操作都应使用专用方法或显式将它们转换为原始值。
js
const time1 = Temporal.PlainTime.from("00:00:00");
const time2 = Temporal.PlainTime.from("12:00:00");
time1 > time2; // TypeError: can't convert PlainTime to primitive type
Temporal.PlainTime.compare(time1, time2); // -1
time2 - time1; // TypeError: can't convert PlainTime to primitive type
time2.since(time1).toString(); // "PT12H"
规范
规范 |
---|
Temporal # sec-temporal.plaintime.prototype.valueof |
浏览器兼容性
加载中…