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 toString
valor do prototype
objeto da Date
funçã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.prototype
objeto é 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)
...