나는 __proto__
더 이상 사용되지 않는다는 것을 알고 있으며 (또는 표준의 일부가 아님) 모든 것을 알고 있지만 __proto__
가치를 볼 때 유효하지 않은 날짜라고 말할 때 그것이 무엇을 의미하는지 여전히 궁금합니다 ..
var myDate = new Date(1331869050000);
답변
“유효하지 않은 날짜가 표시되는 것이 무엇을 의미하는지 여전히 궁금합니다.”
그것은 단순히 생성자 함수 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
- 특정
__proto__
기능 과 함께 섹션 B.3.1을 추가했습니다 .
답변
새로운 Date 객체를 만든 것을 고려하면 걱정하지 않을 것입니다. 그 이유는이 코드를 시도하면 다음과 같습니다.
var myDate = new Date(1331869050000);
alert(typeof myDate.getMonth != 'undefined') //true
이렇게하면 Date 개체 메서드를 상속하고 실제로 Date IS가 정의되어 있는지 확인할 수 있습니다.
추가 조사를 원하시면 이 게시물을 참조하십시오.
답변
Date 인스턴스의 프로토 타입에는 정의 된 값이 없습니다. 인스턴스에만 값이 있습니다. 인스턴스화 할 때 정의합니다.