[javascript] Chrome Dev Tool이 날짜 __proto__를 잘못된 날짜로 표시하는 이유는 무엇입니까?

나는 __proto__더 이상 사용되지 않는다는 것을 알고 있으며 (또는 표준의 일부가 아님) 모든 것을 알고 있지만 __proto__가치를 볼 때 유효하지 않은 날짜라고 말할 때 그것이 무엇을 의미하는지 여전히 궁금합니다 ..

var myDate = new Date(1331869050000);



답변

“유효하지 않은 날짜가 표시되는 것이 무엇을 의미하는지 여전히 궁금합니다.”

그것은 단순히 생성자 함수 toStringprototype객체 값입니다 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

  • 특정 __proto__기능 과 함께 섹션 B.3.1을 추가했습니다 .


답변

새로운 Date 객체를 만든 것을 고려하면 걱정하지 않을 것입니다. 그 이유는이 코드를 시도하면 다음과 같습니다.

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

이렇게하면 Date 개체 메서드를 상속하고 실제로 Date IS가 정의되어 있는지 확인할 수 있습니다.

추가 조사를 원하시면 게시물을 참조하십시오.


답변

Date 인스턴스의 프로토 타입에는 정의 된 값이 없습니다. 인스턴스에만 값이 있습니다. 인스턴스화 할 때 정의합니다.


답변