Javascript Class Constructor

곽태민·2023년 3월 24일
0

TIL

목록 보기
50/65
post-custom-banner

개요


개발을하다가 Class에 Constructor가 함수 처럼 밖에서 사용할 때 매개변수처럼 느껴져서 이게 맞는건지 확실히 체감을 못하여 정리를 하게 됐다.

Class Constructor


💡 Constructor는 Class의 Instance 객체를 생성, 초기화하는 역할을 한다.

Class의 기본 형태


class Animal {

	// run, stop Method는 호출에 앞서서, name 객체를 생성하면서 초기화를 한다.
	constructor(name) {
		this.speed = 0;
		this.name = name;
	}
	
	run(speed) {
		this.speed = speed;
		alert(`${this.name} 은/는 속도 ${this.speed}로 달린다.`);
	}

	stop() {
		this.speed = 0;
		alert(`${this.name} 이/가 멈췄습니다.`);
	}
}

const animal = new Animal('사자');

Constructor 사용하는 이유


constructor는 Class 안에서 아니면 다른 다른 Class에 상속한 경우에는 해당 Class 내부에서 사용하기 위한 객체를 정의하는 것이라고 볼 수 있다.

Class 내부에 다양한 함수가 존재하면 constructor로 생성과 초기화된 객체는 this.변수의 형태로 어느 함수의 내부라도 접근할 수 있다.

Constructor 활용 하기


개발하다 기존에 있던 Class에 일부 기능만 변경하거나 새롭게 추가하고 싶을 경우에 새로 생성한 Class는 부모 Class의 상속을 받는데, 이 경우에는 super();Method를 통해서 부모 Class의 생성자를 호출 해야한다.

  • 참고 super() Method = 자식 Class 생성자 내부에서만 사용 가능.
  • Ex) 부모 Class인 Animal을 상속 받은 Rabbit Class는 부모 Class의 생성자를 상속받기 위해 super() Method를 사용.
    class Animal {
    	
    	constructor(name) {
    		this.speed = 0;
    		this.name = name;
    	}
    	...
    }
    
    class Rabbit extends Animal {
    
    	constructor(name, earLength) {
    		super(name);
    		this.earLength = earLength;
    	}
    	...
    }
    
    const rabbit = new Rabbit('산토끼', 15);
    console.log(rabbit.name);      // 산토끼
    console.log(rabbit.earLength); // 15
profile
Node.js 백엔드 개발자입니다!
post-custom-banner

0개의 댓글