접근 자와 "정적"키워드를 사용하여 "공개 정적 필드"를 만듭니다.
class Agent {
static get CIRCLE() {
return 1;
}
static get SQUARE() {
return 2;
}
}
Agent.CIRCLE;
사양을 보면 14.5 — 클래스 정의 — 의심스럽게 관련된 것을 볼 수 있습니다. :)
ClassElement [Yield] :
MethodDefinition [? Yield]
static MethodDefinition [? Yield];
그래서 거기에서 14.5.14 — Runtime Semantics : ClassDefinitionEvaluation —을 따라 가면 그것이 실제로하는 것처럼 보이는지 다시 확인할 수 있습니다. 특히 20 단계 :
- 메서드에서 순서대로 각 ClassElement m에 대해
- 경우 m의 IsStatic은 false입니다 다음,
- 상태를 proto 및 false 인수를 사용하여 m에 대해 PropertyDefinitionEvaluation을 수행 한 결과라고합시다.
- 그밖에,
- status를 인수 F 및 false로 m에 대해 PropertyDefinitionEvaluation을 수행 한 결과라고합시다.
- 상태가 갑작스런 완료 인 경우
- 실행중인 실행 컨텍스트의 LexicalEnvironment를 lex로 설정합니다.
- 반환 상태.
IsStatic은 14.5.9 이전에 정의되었습니다.
ClassElement : static MethodDefinition
true 를 반환합니다.
따라서 PropertyMethodDefinition
"F"(생성자, 함수 객체)를 인수로 사용하여 호출되며, 그러면 해당 객체에 대한 접근 자 메서드 가 생성 됩니다.
이것은 이미 적어도 IETP (기술 미리보기), 6to5 및 Traceur 컴파일러에서 작동합니다.