ฉันรู้ว่า__proto__
เลิกใช้แล้ว (หรือไม่ได้เป็นส่วนหนึ่งของมาตรฐาน) และทั้งหมดนั้น แต่ฉันก็ยังอยากรู้ว่ามันหมายถึงอะไรเมื่อมันบอกว่า Invalid Date เมื่อฉันดู__proto__
ค่าของ ..
var myDate = new Date(1331869050000);
ฉันรู้ว่า__proto__
เลิกใช้แล้ว (หรือไม่ได้เป็นส่วนหนึ่งของมาตรฐาน) และทั้งหมดนั้น แต่ฉันก็ยังอยากรู้ว่ามันหมายถึงอะไรเมื่อมันบอกว่า Invalid Date เมื่อฉันดู__proto__
ค่าของ ..
var myDate = new Date(1331869050000);
คำตอบ:
"ฉันยังสงสัยอยู่ว่ามันหมายความว่าอย่างไรเมื่อมีข้อความว่า Invalid Date"
นั่นเป็นเพียงtoString
ค่าของprototype
วัตถุของDate
ฟังก์ชันตัวสร้าง
Date.prototype.toString(); // "Invalid Date"
คุณสามารถลบล้างได้หากคุณต้องการ ...
Date.prototype.toString = function() { return "I like turtles." };
var myDate = new Date(1331869050000);
myDate.__proto__; // I like turtles.
นอกประเด็นเล็กน้อย แต่__proto__
อยู่ในร่างการทำงานปัจจุบันสำหรับ ECMAScript เวอร์ชันถัดไปชื่อรหัส Harmony
http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts
- เพิ่มส่วน B.3.1 พร้อมระบุ
__proto__
คุณสมบัติ
เมื่อพิจารณาว่าคุณสร้างวัตถุ Date ใหม่ฉันก็ไม่ต้องกังวลกับมัน เหตุผลก็คือถ้าคุณลองใช้รหัสนี้:
var myDate = new Date(1331869050000);
alert(typeof myDate.getMonth != 'undefined') //true
สิ่งนี้จะกำหนดว่าคุณกำลังสืบทอดเมธอด Date object และในความเป็นจริง Date IS กำหนดไว้
หากคุณต้องการตรวจสอบเพิ่มเติมโปรดดูที่ นี้โพสต์
ต้นแบบของอินสแตนซ์ Date ไม่มีค่าที่กำหนด เฉพาะอินสแตนซ์เท่านั้นที่มีค่า คุณกำหนดเมื่อคุณสร้างอินสแตนซ์
Date.prototype
วัตถุเป็นวัตถุDate ด้วยตัวมันเองแต่[[PrimitiveValue]]
คุณสมบัติภายในคือNaN
(คุณสมบัติภายในนี้ในวันที่วัตถุเก็บค่าเวลา ) ดังนั้นจึงไม่แสดง เป็นวันที่ที่ถูกต้องDate.prototype
เป็นวัตถุที่คล้ายกับnew Date(NaN)
...