객체 지향 프로그래밍을 하면 생성자 ( Constructor ) 를 들어보게 됨.
class User { // 상위 클래스 ( 부모 클래스 )
constructor(firstName, lastName, nickName) {
this.firstName = firstName;
this.lastName = lastName;
this.nickName = nickName;
}
sayhello() {
return `${this.firstName}${this.lastName}의 닉네임은 ${this.nickName}입니다.`;
}
}
우선 User 라는 상위(부모) 클래스를 만들어 줌.
여기서 생성자 ( Constructor ) 를 사용했는데
이는 User 클래스가 상속되어 질때 제일 먼저 사용되는 함수라 생각하면 됨.
이 코드에서는 firstName, lastName, nickName 을 무조건 받아와야 한다는 의미.
( JS 라서 없으면 오류가 뜨지 않고 undefined 라고 출력되긴 함 )
받아온 값을 이용해 sayhello라는 함수를 만듦.
1.
const test = new User("배", "병일", "뺑")
console.log(test1.say()); // 배병일의 닉네임은 뺑입니다.
이런식으로 사용가능함.
2.
class my extends User {
constructor(firstName, lastName, nickName) {
super(firstName, lastName, nickName)
}
}
const test1 = new my("배", "병일", "뺑");
console.log(test1.sayhello()); // 배병일의 닉네임은 뺑입니다.
하위 (자식) 클래스에서 생성자 (constructor) 를 만들어주고,
상위( 부모 클래스 ) 의 constructor(생성자) 함수(메서드) 에 접근하기 위해서는 super()를 사용한 뒤에 접근 가능함.
3.
class my extends User {
say(firstName, lastName, nickName) {
super.firstName = firstName;
super.lastName = lastName;
super.nickName = nickName;
return super.sayhello();
}
}
const test1 = new my("배", "병일", "뺑");
console.log(test1.say()); // 배병일의 닉네임은 뺑입니다.
3번 방법은 say라는 함수를 따로 만들고 상위(부모) 클래스에 접근하기 위해 super. 을 사용함.
super. 을 사용하여 상위(부모) 클래스의 constructor(생성자) 에 접근하여 값을 넣어줬고,
return super.sahello() 로 상위(부모) 클래스의 함수(메서드)를 사용함.
'Javascript' 카테고리의 다른 글
JavaScript 동작 원리 (0) | 2024.02.15 |
---|---|
객체지향 프로그래밍 (0) | 2023.08.04 |
enum에 쉽게 value 지정하기 (0) | 2023.07.26 |
javascript 에서 enum 사용 (0) | 2023.07.25 |
데이터 타입 ( 숫자, 문자 ) 정리 (0) | 2023.06.09 |