2012-03-15 4 views

답변

86

는 단순히 Date 생성자 함수의 prototype 개체의 toString 값의

"나는 여전히 잘못된 날짜가 말할 때 그것이 무엇을 의미하는지에 대한 궁금 해요."


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.
+49

가까이에 있지만 "이유"부분이 여전히 누락되어 있기 때문에 [날짜 .prototype'] (http://es5.github.com/#x15.9.5) 개체가 * 날짜입니다 자체적으로 * 자체 속성은''[PrimitiveValue]]'내부 속성은''NaN''입니다 (날짜 객체의 내부 속성은 [시간 값]을 저장합니다 (http://es5.github.com/#x15.9.1.1)), 실제로 유효한 날짜를 나타내지는 않습니다. 'Date.prototype'은'new Date (NaN)'과 비슷한 객체입니다 ... – CMS

+0

@CMS : 의미가 있습니다. 좋은 정보입니다. 원할 경우 자유롭게 답변에 추가하십시오. –

+4

그래서 기본적으로 오류가 없으며 Chrome은 true 값을 표시하지 않는 toString()을 반영합니다. –

2

당신이 새 Date 객체를 만들었다 고 생각하면 걱정할 필요가 없습니다. 이 코드를하려고하면 그 이유의 존재는, :

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

이것은 당신이 날짜를 상속하는 것은 메소드를 객체로 해, 사실, 날짜가 정의되어 있는지를 결정합니다.

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

0

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

관련 문제