constructor() 메서드는 자바스크립트 클래스에서 특별한 역할을 담당합니다. 클래스의 속성(property)을 초기화하는 공간이며, 클래스가 인스턴스화되는 순간 자동으로 호출됩니다. 흥미로운 점은 constructor() 메서드를 직접 작성하지 않아도, 자바스크립트 엔진이 보이지 않는 빈 생성자를 자동으로 추가해 준다는 것입니다.
사용자 정의 메서드 만들기
클래스 안에는 생성자 외에도 개발자가 원하는 메서드를 자유롭게 추가할 수 있습니다. 사용자 정의 메서드를 만드는 문법은 생성자와 마찬가지로 클래스 본문 내부에 함수 이름과 매개변수를 선언하는 형태로, 일반적인 메서드 정의 문법과 동일합니다. 단, 클래스 내부에서는 function 키워드 없이 메서드 이름만 작성한다는 점에 유의해야 합니다.
예제
다음 예제에서는 기본 메서드인 constructor() 대신, 사용자가 직접 정의한 anotherMet()라는 메서드를 통해 속성 값을 활용한 결과를 반환합니다. 이처럼 생성자 없이도 클래스 내부의 다른 메서드를 호출하여 원하는 로직을 실행할 수 있습니다.
<html>
<body>
<p id="method"></p>
<script>
class Company {
constructor(branch) {
this.name = branch;
}
anotherMet(x) {
return x + " is the head of " + this.name;
}
}
myComp = new Company("Tesla");
document.getElementById("method").innerHTML = myComp.anotherMet("Elon musk");
</script>
</body>
</html>출력 결과
Elon musk is the head of Tesla
위 예제에서 Company 클래스는 생성자를 통해 Tesla라는 회사 이름을 속성으로 저장하고, anotherMet() 메서드는 전달받은 인수와 저장된 속성을 조합하여 문자열을 반환합니다. 이렇게 생성자와 사용자 정의 메서드를 함께 활용하면 객체 지향 프로그래밍의 장점을 극대화할 수 있습니다.