Saya tahu __proto__
sudah usang (atau bukan bagian dari standar) dan semua itu tapi saya masih penasaran apa artinya ketika dikatakan Invalid Date ketika saya melihat __proto__
nilai ..
var myDate = new Date(1331869050000);
Saya tahu __proto__
sudah usang (atau bukan bagian dari standar) dan semua itu tapi saya masih penasaran apa artinya ketika dikatakan Invalid Date ketika saya melihat __proto__
nilai ..
var myDate = new Date(1331869050000);
Jawaban:
"Saya masih penasaran apa artinya kalau dikatakan Invalid Date"
Itu hanyalah toString
nilai prototype
objek dari Date
fungsi konstruktor.
Date.prototype.toString(); // "Invalid Date"
Anda dapat menggantinya jika Anda suka ...
Date.prototype.toString = function() { return "I like turtles." };
var myDate = new Date(1331869050000);
myDate.__proto__; // I like turtles.
Sedikit keluar dari topik, tetapi __proto__
sedang dalam draft kerja saat ini untuk versi ECMAScript berikutnya, codename Harmony.
http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts
- Menambahkan bagian B.3.1 dengan
__proto__
fitur tertentu .
mengingat Anda membuat objek Tanggal baru, saya tidak akan mengkhawatirkannya. Alasannya, jika Anda mencoba kode ini:
var myDate = new Date(1331869050000);
alert(typeof myDate.getMonth != 'undefined') //true
Ini akan menentukan bahwa Anda mewarisi metode objek Tanggal dan pada kenyataannya, Tanggal IS ditentukan.
Jika Anda ingin penyelidikan lebih lanjut, lihat posting ini .
Date.prototype
objek tersebut adalah objek Tanggal dengan sendirinya tetapi[[PrimitiveValue]]
properti internalnya adalahNaN
(properti internal pada objek tanggal ini menyimpan nilai waktu ), jadi tidak mewakili sebenarnya tanggal yang valid.Date.prototype
adalah objek yang mirip dengannew Date(NaN)
...