정적 초기화 블록은 매우 새로운 JavaScript 기능으로, ECMAScript 2022는 최신 브라우저입니다. 정적 초기화 블록을 사용하면 정적 필드의 값을 동적으로 설정할 수 있습니다. 여러 문에 걸쳐 있는 로직을 사용하여 머신러닝 모델을 학습시킬 수 있습니다
정적 초기화 블록을 만들려면 static
키워드 뒤에
곱슬곱슬한 형태의 블록 문
대괄호 ({}
):
class MyClass {
static {}
}
이 패턴을 사용하면 있습니다.
class MyClass {
static firstProperty = 'First property.';
static secondProperty;
static {
this.secondProperty = 'Second property.';
}
}
MyClass.secondProperty;
"Second property."
이러한 문은 클래스가 처음 초기화될 때 평가되며,
즉, 자바스크립트 엔진이 API를 처음 평가할 때이며,
클래스가 생성됩니다. constructor()
와 마찬가지로 다음과 같습니다.
class MyClass {
static {
console.log( "Static initialization block." );
}
constructor() {
console.log( "Constructor." );
}
}
> "Static initialization block."
const myClassInstance = new MyClass();
> "Constructor."
한 클래스에 여러 정적 초기화 블록이 포함될 수 있으며 이러한 블록은 다른 정적 필드와 함께 선언된 순서대로 평가되며 메서드를 참조하세요. 즉, 정적 초기화 전에 선언된 필드만 사용할 수 있습니다.
class MyClass {
static myNewField;
static {
this.myNewField = this.myField;
}
static myField = "My value.";
};
MyClass.myNewField;
> undefined
class MyCorrectedClass {
static myNewField;
static myField = "My value.";
static {
this.myNewField = this.myField;
}
};
MyCorrectedClass.myNewField;
> "My value."
이해도 확인
다음 중 올바른 설명은 무엇인가요?
하나의 클래스에는 정적 초기화 블록이 하나만 포함될 수 있습니다.
정적 초기화 블록 이후에 선언된 필드를 사용할 수 있습니다.
넣으십시오.
정적 초기화 블록은 클래스가 다음과 같을 때 평가됩니다.
있습니다.