Почему Chrome Dev Tool отображает даты __proto__ как недействительные даты? - PullRequest
89 голосов
/ 15 марта 2012

Я знаю, что __proto__ устарело (или не является частью стандарта) и все такое, но мне все еще любопытно, что это значит, когда он говорит "Неверная дата", когда я смотрю на __proto__ значение ..

var myDate = new Date(1331869050000);

Ответы [ 3 ]

87 голосов
/ 15 марта 2012

«Мне все еще интересно, что это значит, когда говорится« Неверная дата »*

Это просто значение 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__.
2 голосов
/ 15 марта 2012

учитывая, что вы создали новый объект Date, я не стал бы беспокоиться об этом. Причина в том, что если вы попробуете этот код:

var myDate = new Date(1331869050000);
alert(typeof myDate.getMonth != 'undefined')    //true

Это будет определять, что вы наследуете методы объектов Date и что фактически Date определена.

Если вы хотите продолжить расследование, взгляните на эту запись.

0 голосов
/ 08 октября 2015

Прототип экземпляра Date не имеет определенного значения. Только экземпляр имеет значение. Вы определяете это, когда создаете его экземпляр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...