Đó là năm 2017 và tôi có cùng một câu hỏi. Tôi đã tìm thấy câu trả lời sau khi đọc:
"Cách đơn giản nhất để thực hiện chuyển đổi loại rõ ràng là sử dụng các hàm Boolean(), Number(), String() hoặc Object(). Tuy nhiên, khi được gọi mà không có toán tử trình bao mới, chúng hoạt động như các hàm chuyển đổi và thực hiện các chuyển đổi kiểu. "
" Các lớp JavaScript cố định được xây dựng sẵn toString() chuyển đổi, ngoại trừ lớp Date, thực hiện chuyển đổi toString(). "
Vì vậy ngày() được gọi mà không có từ khóa mới thực hiện chuyển đổi loại. Và vì Date là một đối tượng và một đối tượng-to-primitive nên xảy ra, các đối tượng date theo mặc định gọi toString() (mặc dù Date cũng có phương thức valueOf() có ý nghĩa).
Tìm thấy rằng trên sách "JavaScript: The Definitive Guide". Để nó ở đây cho các thế hệ tương lai mới bắt đầu học JS :)
Câu trả lời hay nhất cho đến nay –
bất kỳ mã giả nào về cách hàm Date() được triển khai sao cho nó có thể hoạt động như một hàm tạo và một hàm bình thường? thanks – Benny
@Benny quan sát những điều sau đây: 'hàm Test() { var private =" private value "; this.public = "giá trị công khai"; trả lại "giá trị trả lại"; } ' Gọi' new Test() 'tạo một đối tượng có giá trị riêng tư và công khai. Việc gọi 'Test()' trả về một chuỗi. – musicin3d