JavaScript 클래스에 정적 메서드 할당하기
JavaScript에서 클래스에 정적 메서드(static method)를 정의하는 방법은 아주 간단합니다. 메서드 이름 앞에 static 키워드를 붙이기만 하면 됩니다.
정적 메서드의 가장 큰 특징은 클래스를 인스턴스화하지 않고도 직접 호출할 수 있다는 점입니다. 즉, new 키워드로 객체를 만들 필요 없이 클래스명.메서드명() 형태로 바로 사용할 수 있습니다.
정적 메서드의 주요 특징
static키워드를 메서드 선언 앞에 붙여 정의합니다.- 클래스 이름을 통해 직접 호출하며, 인스턴스 생성이 필요 없습니다.
- 인스턴스의 개별 데이터(this.fname 등)에는 접근할 수 없습니다.
- 유틸리티 함수나 공통 기능을 묶어 관리할 때 유용합니다.
예제 코드
아래는 JavaScript 클래스에 정적 메서드를 할당하고 활용하는 전체 예제입니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>정적 메서드 예제</title>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.result {
font-size: 18px;
font-weight: 500;
color: rebeccapurple;
}
</style>
</head>
<body>
<h1>JavaScript 클래스의 정적 메서드</h1>
<div class="result"></div>
<button class="Btn">CLICK HERE</button>
<p>위 버튼을 클릭하면 testClass의 정적 메서드로 두 숫자를 더합니다.</p>
<script>
let resEle = document.querySelector(".result");
let BtnEle = document.querySelector(".Btn");
class testClass {
constructor(fname, lname) {
this.fname = fname;
this.lname = lname;
}
// static 키워드로 정적 메서드 정의
static add(a, b) {
resEle.innerHTML = a + " + " + b + " = " + (a + b);
}
}
// 인스턴스 생성 없이 클래스 이름으로 직접 호출
BtnEle.addEventListener("click", () => {
testClass.add(22, 44);
});
</script>
</body>
</html>
코드 설명
testClass 내부의 add() 메서드 앞에 static 키워드가 붙어 있으므로, 이 메서드는 정적 메서드가 됩니다. 버튼 클릭 시 testClass.add(22, 44)처럼 객체를 생성하지 않고 곧바로 호출하여 두 수의 합을 화면에 출력합니다.
실행 결과
위 코드를 실행하면 다음과 같이 동작합니다.
초기 화면에는 제목, 결과 영역, 그리고 'CLICK HERE' 버튼이 표시됩니다.

'CLICK HERE' 버튼을 클릭하면 정적 메서드 add()가 실행되어 다음과 같은 계산 결과가 화면에 나타납니다.
