Classes : 동일한 모양의 객체를 더 쉽게 생성하도록 도와주는 문법
- 필드 : 클래스가 생성할 객체가 갖는 프로퍼티
- 생성자 : 객체를 생성하는 함수 (this = 현재 만들고 있는 객체)
let memberA = {
name: "이마크",
grade: "A+",
age: 25,
chant() {
console.log("TO THE WORLD 여긴 NCT");
},
introduce() {
console.log("안녕하세요 NCT 입니다.");
},
};
class Member {
// class 앞 글자는 대문자
//필드
name;
grade;
age;
// 생성자
constructor(name, grade, age) {
this.name = name;
this.grade = grade;
this.age = age;
}
// 메서드
chant() {
console.log("TO THE WORLD 여긴 NCT");
}
introduce() {
console.log(`안녕하세요 ${this.name} 입니다`);
}
}
// 클래스를 이용해서 만든 객체 > 인스턴스
let memberB = new Member("이해찬", "A+", "24");
console.log(memberB);
memberB.chant();
memberB.introduce();
// 파생코드
class MemberLeader extends Member {
// 필드
favoriteSkill;
// 생성자
constructor(name, grade, age, favoriteSkill) {
super(name, grade, age); // super함수로 부모 클래스의 생성자를 호출
this.favoriteSkill = favoriteSkill;
}
// 메서드
position() {
console.log(`${this.favoriteSkill}를 담당하고 있습니다`);
}
}
const memberLeader = new MemberLeader("이태용", "A+", 29, "MainDancer");
console.log(memberLeader);
memberLeader.position();
** extends로 확장 가능 -> super 메서드를 호출 -> 인수로 기존 값 받아옴
Classes - JavaScript | MDN
Class는 객체를 생성하기 위한 템플릿입니다. 클래스는 데이터와 이를 조작하는 코드를 하나로 추상화합니다. 자바스크립트에서 클래스는 프로토타입을 이용해서 만들어졌지만 ES5의 클래스 의
developer.mozilla.org
'Front > Javascript' 카테고리의 다른 글
Function (0) | 2024.02.17 |
---|---|
연산, 반복문 (0) | 2024.02.17 |
Deep Dive: 데이터 타입 (1) | 2023.12.20 |
Deep Dive: 표현식과 문 (1) | 2023.11.03 |
DeepDive: 변수 (0) | 2023.11.03 |