Eu sei que __proto__está obsoleto (ou não faz parte do padrão) e tudo isso, mas ainda estou curioso para saber o que significa quando diz Data inválida quando vejo o __proto__valor de ..
var myDate = new Date(1331869050000);
Eu sei que __proto__está obsoleto (ou não faz parte do padrão) e tudo isso, mas ainda estou curioso para saber o que significa quando diz Data inválida quando vejo o __proto__valor de ..
var myDate = new Date(1331869050000);
Respostas:
"Ainda estou curioso para saber o que significa quando diz Data inválida"
Esse é simplesmente o toStringvalor do prototypeobjeto da Datefunção construtora.
Date.prototype.toString(); // "Invalid Date"
Você pode substituí-lo se quiser ...
Date.prototype.toString = function() { return "I like turtles." };
var myDate = new Date(1331869050000);
myDate.__proto__; // I like turtles.
Um pouco fora do assunto, mas __proto__ está no rascunho de trabalho atual para a próxima versão do ECMAScript, codinome Harmony.
http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts
- Adicionada seção B.3.1 com
__proto__recursos específicos .
considerando que você criou um novo objeto Date, eu não me preocuparia com isso. O motivo é, se você tentar este código:
var myDate = new Date(1331869050000);
alert(typeof myDate.getMonth != 'undefined') //true
Isso determinará que você está herdando os métodos dos objetos Date e que, de fato, a Date ESTÁ definida.
Se você quiser uma investigação mais aprofundada, dê uma olhada neste post.
Date.prototypeobjeto é um objeto Date por si só, mas sua[[PrimitiveValue]]propriedade interna éNaN(esta propriedade interna em objetos de data armazena o valor de tempo ), portanto, não representa na verdade, uma data válida.Date.prototypeé um objeto semelhante anew Date(NaN)...