So che __proto__è deprecato (o non fa parte dello standard) e tutto il resto, ma sono ancora curioso di sapere cosa significhi quando si dice Data non valida quando guardo il __proto__valore di ..
var myDate = new Date(1331869050000);
So che __proto__è deprecato (o non fa parte dello standard) e tutto il resto, ma sono ancora curioso di sapere cosa significhi quando si dice Data non valida quando guardo il __proto__valore di ..
var myDate = new Date(1331869050000);
Risposte:
"Sono ancora curioso di sapere cosa significhi quando si dice Data non valida"
Questo è semplicemente il toStringvalore prototypedell'oggetto della Datefunzione di costruzione.
Date.prototype.toString(); // "Invalid Date"
Puoi sovrascriverlo se vuoi ...
Date.prototype.toString = function() { return "I like turtles." };
var myDate = new Date(1331869050000);
myDate.__proto__; // I like turtles.
Un po 'fuori tema, ma __proto__è nella bozza di lavoro corrente per la prossima versione di ECMAScript, nome in codice Harmony.
http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts
- Aggiunta sezione B.3.1 con specifica
__proto__funzionalità.
considerando che hai creato un nuovo oggetto Date, non me ne preoccuperei. Il motivo è che, se provi questo codice:
var myDate = new Date(1331869050000);
alert(typeof myDate.getMonth != 'undefined') //true
Ciò determinerà che si ereditano i metodi degli oggetti Date e che di fatto è definita la data.
Se desideri ulteriori indagini, dai un'occhiata a questo post.
Date.prototypeoggetto è un oggetto Date di per sé ma la sua[[PrimitiveValue]]proprietà interna lo èNaN(questa proprietà interna sugli oggetti data memorizza il valore temporale ), quindi non rappresenta effettivamente una data valida.Date.prototypeè un oggetto simile anew Date(NaN)...