Temporal.Instant.prototype.valueOf()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Phương thức valueOf() của các instance Temporal.Instant ném ra TypeError, ngăn các instance Temporal.Instant bị chuyển đổi ngầm định thành kiểu nguyên thủy khi được sử dụng trong các phép toán số học hoặc so sánh.
Cú pháp
valueOf()
Tham số
Không có.
Giá trị trả về
Không có.
Ngoại lệ
TypeError-
Luôn luôn được ném ra.
Mô tả
Vì cả chuyển đổi nguyên thủy và chuyển đổi số đều gọi valueOf() trước toString(), nếu valueOf() vắng mặt, biểu thức như instant1 > instant2 sẽ ngầm định so sánh chúng dưới dạng chuỗi, có thể cho kết quả không mong muốn. Bằng cách ném TypeError, các instance Temporal.Instant ngăn chặn các chuyển đổi ngầm định như vậy. Bạn cần chuyển đổi chúng tường minh thành số bằng Temporal.Instant.prototype.epochNanoseconds, hoặc sử dụng phương thức tĩnh Temporal.Instant.compare() để so sánh chúng.
Ví dụ
>Các phép toán số học và so sánh trên Temporal.Instant
Tất cả các phép toán số học và so sánh trên các instance Temporal.Instant phải sử dụng các phương thức chuyên dụng hoặc chuyển đổi chúng thành kiểu nguyên thủy một cách tường minh.
const instant1 = Temporal.Instant.fromEpochMilliseconds(0);
const instant2 = Temporal.Instant.fromEpochMilliseconds(1000);
instant1 > instant2; // TypeError: can't convert Instant to primitive type
instant1.epochNanoseconds > instant2.epochNanoseconds; // false
Temporal.Instant.compare(instant1, instant2); // -1
instant2 - instant1; // TypeError: can't convert Instant to primitive type
instant2.since(instant1).toString(); // "PT1S"
Đặc tả
| Specification |
|---|
| Temporal> # sec-temporal.instant.prototype.valueof> |