클래스의 static이란?
클래스 자체에 귀속되어있는 속성이나 메서드를 정의할 때 사용
클래스 생성 + static 예시
class Lol{
name;
year;
static groupName = 'Riot'; // static을 붙이고 만들면 객체에 귀속x / 클래스자체에 귀속됨
constructor(name, year){
this.name = name;
this.year = year;
}
static returnGroupName(){
return '넥서스';
}
}
출력확인
const hoo = new Lol('아무무', 2002);
console.log(hoo); // Lol { name: '아무무', year: 2002 }
// 🎉 객체를 출력했지만 groupName은 객체에 귀속x 라서, 출력안됨
console.log(Lol.groupName); // Riot (클래스의 속성)
console.log(Lol.returnGroupName()); // 넥서스 (클래스의 함수수)
클래스의 factory constructor란?
객체를 만들어 반환하는 함수.
new 키워드 없이 함수처럼 호출해서 객체를 반환.
언제사용?
1) 주로 복잡한 객체 생성 로직이나 여러 조건에 따라 다양한 객체를 반환해야 할 때 사용
2) 여러 조건에 따라 다양한 객체를 반환해야 할 때 사용
클래스생성 + factory constructor 함수 생성
class Lol2{
name;
year;
constructor(name, year){
this.name = name;
this.year = year;
}
// static함수) object를 만들기
static formObject(object){ // LOl2 클래스에 귀속된 함수
return new Lol2(
object.name,
object.year
);
}
// static함수) 리스트로부터 만들기
static fromList(list){ // LOl2 클래스에 귀속된 함수
return new Lol2(
list[0],
list[1],
);
}
}
호출결과 확인
// static함수에 object만들기 >> argument를 넣어줌
const hoo2 = Lol2.formObject({
name : 'rangGa',
year : 2003,
});
console.log(hoo2); // Lol2 { name: 'rangGa', year: 2003 }
// static함수에 list로 object만들기 >> argument 리스트넣어줌
const Arrow = Lol2.fromList(
[
'호라이즌',
2003,
]
);
console.log(Arrow); // Lol2 { name: '호라이즌', year: 2003 }
출처 : https://www.youtube.com/watch?v=ZOVG7_41kJE&t=183s
'JavaScript' 카테고리의 다른 글
JavaScript 2_5 Super()와 Overide (0) | 2025.06.01 |
---|---|
JavaScript 2_4 상속_ 인스턴스? vs 객체? (0) | 2025.05.31 |
JavaScript 2-2 클래스의 getter와 setter 그리고 private (0) | 2025.05.29 |
JavaScript 2_1 클래스? constructor? (1) | 2025.05.28 |
JavaScript 1-16_try ~ catch 에러 (0) | 2025.05.27 |