[javascript] Es6 클래스(Class)와 constructor

들블리셔·2022년 7월 18일
0
post-custom-banner

es6 문법인 class객체 생성자(생성자 함수)와 prototype을 조금 더 쉽게 사용하는 문법이다.

class를 생성하고 객체로 만들어 보겠다.

class Animal {
  // constructor는 객체 생성자 함수와 비슷한 객체를 생성하는 생성자 메서드이다.
  // 어려운 말로 인스턴스를 생성 한다고 한다.
  	constructor(type, name, sound) {
    	this.type = type;
    	this.name = name;
    	this.sound = sound;
  	}
  	say() {
    	console.log(this.sound);
  	}
}
// 생성자 함수의 경우에서는 prototype을 이용해서 상속을 했지만,
// 클래스에서의 상속은 extends 키워드를 사용 한다.
class Dog extends Animal {
	constructor(name, sound) {
		// super키워드는 자신이(Dog) 상속 받은 class의(Animal) constructor를 호출 한다. 
		super('개', name, sound);
    }
}
class Cat extends Animal {
	constructor(name, sound) {
		super('고양이', name, sound);
	}
}

결과는..

const dog = new Dog('멍멍이', '멍멍');
const cat = new Cat('야옹이', '야옹');
const cat2 = new Cat('야옹이2', '야옹2');
const cat3 = new Cat('야옹이3', '야옹3');
dog.say();  //멍멍
cat.say();  //야옹
cat2.say();  //야옹2
cat3.say();  //야옹3

class Dog, Cat 에서 사용하는 constructor 안에 사용 하는 super() 함수가 상속 받은 class Animal의 constructor를 가르킨다.


profile
나의 공부방
post-custom-banner

0개의 댓글