Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript 정적 속성(Static Properties)의 개념과 사용법

JavaScript에서 정적 속성(Static Property)은 클래스의 prototype 속성이 아닌, 클래스 함수 자체에 직접 할당되는 속성입니다. 이러한 속성은 객체를 인스턴스화하지 않고도 클래스 이름을 통해 직접 호출할 수 있다는 것이 가장 큰 특징입니다.

정적 속성의 핵심 개념

  • 정적 속성은 클래스(생성자 함수) 자체에 귀속됩니다.
  • 인스턴스 객체에서는 접근할 수 없으며, 오직 클래스 이름으로만 참조 가능합니다.
  • 모든 인스턴스가 공유해야 하는 설정값이나 유틸리티 데이터를 저장할 때 유용합니다.

예제 코드

다음은 JavaScript에서 정적 속성을 사용하는 방법을 보여주는 예제입니다.

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
    body {
        font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    }
    .result {
        font-size: 20px;
        font-weight: 500;
        color: blueviolet;
    }
</style>
</head>
<body>
<h1>JavaScript의 정적 속성</h1>
<div class="result"></div>
<button class="Btn">여기를 클릭하세요</button>
<h3>위 버튼을 클릭하면 Student 클래스의 정적 속성 school에 접근합니다.</h3>
<script>
    let resEle = document.querySelector(".result");
    function Student(name, age) {
        this.name = name;
        this.age = age;
    }
    Student.school = "St Marks Public School";
    document.querySelector(".Btn").addEventListener("click", () => {
        resEle.innerHTML = "Student.school = " + Student.school;
    });
</script>
</body>
</html>

코드 설명

위 코드에서 Student.school = "St Marks Public School"; 부분이 핵심입니다. school 속성을 Student.prototype에 추가하는 것이 아니라 Student 함수 객체 자체에 직접 할당했습니다. 따라서 new Student()로 객체를 생성하지 않고도 Student.school처럼 곧바로 접근할 수 있습니다.

실행 결과

버튼을 클릭하기 전 화면입니다.

JavaScript 정적 속성(Static Properties)의 개념과 사용법

'여기를 클릭하세요' 버튼을 클릭하면 다음과 같이 정적 속성 값이 화면에 표시됩니다.

JavaScript 정적 속성(Static Properties)의 개념과 사용법

마무리

정적 속성은 인스턴스마다 달라질 필요가 없는 공통 데이터를 관리할 때 매우 효과적입니다. ES6의 class 문법에서는 static 키워드를 사용해 더욱 간결하게 정적 속성과 메서드를 정의할 수 있으니 함께 활용해 보시기 바랍니다.