[JavaScript] 클래스

2025. 3. 4. 17:25·프로그래밍 언어/JavaScript

JavaScript 에서 객체를 생성하는 방법은 두 가지가 존재한다! 

 

1. 객체 리터럴 방식 ( `{ }` 사용 )

2. `class` 를 사용한 방식


 

1. 객체 리터럴 방식

let studentA = {
  name: "홍길동",
  grade: "A+",
  age: 27,
  study() {
    console.log("열심히 공부 함");
  },
  introduce() {
    console.log("안녕하세요!");
  },
};

 

이렇게 해서 객체를 만들어 줄 수있지만 , 재사용성이 떨어짐..

 

2. `class`를 이용한 객체 생성

class Student {
  // 필드 (속성)
  name;
  grade;
  age;

  // 생성자 (객체가 생성될 때 자동 실행)
  constructor(name, grade, age) {
    this.name = name;
    this.grade = grade;
    this.age = age;
  }

  // 메서드 (객체가 사용할 함수)
  study() {
    console.log("열심히 공부 함");
  }

  introduce() {
    console.log(`안녕하세요! ${this.name}입니다.`);
  }
}

 

`constructor`를 통해 객체의 속성을 설정할 수 있음.

 

3. 클래스 인스턴스 생성 ( 객체 만들기 )

let studentB = new Student("홍길동", "A+", 27);
console.log(studentB);
studentB.study();
studentB.introduce();

 

4. 상속 사용하기 

`extends` 키워드를 활용해서 상속을 사용할 수 있다.

 

Student 클래스를 상속받아 `StudentDeveloper` 클래스를 만들어보자

class StudentDeveloper extends Student {
  // 추가 필드
  favoriteSkill;

  // 생성자 (부모 클래스의 속성을 그대로 상속받고, 새로운 속성 추가)
  constructor(name, grade, age, favoriteSkill) {
    super(name, grade, age); // 부모(Student)의 생성자 호출
    this.favoriteSkill = favoriteSkill;
  }

  // 새로운 메서드 추가
  programing() {
    console.log(`${this.favoriteSkill}로 프로그래밍 함.`);
  }
}

 

5. 상속받은 클래스 사용하기

const studentDeveloper = new StudentDeveloper("임꺽정", "B+", 27, "TypeScript");
console.log(studentDeveloper);
studentDeveloper.programing();

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'프로그래밍 언어 > JavaScript' 카테고리의 다른 글

[JavaScript] Rest 매개변수와 Spread 매개변수의 차이  (1) 2025.05.20
[JavaScript] DOM 요소에 대하여,,2  (0) 2025.03.12
[JavaScript] DOM 요소에 대하여,,  (0) 2025.03.12
[JavaScript] 변수와 상수 그리고 자료형...  (0) 2025.01.21
[JavaScript] 는 무슨 역할을 하는 언어일까?  (0) 2025.01.21
'프로그래밍 언어/JavaScript' 카테고리의 다른 글
  • [JavaScript] DOM 요소에 대하여,,2
  • [JavaScript] DOM 요소에 대하여,,
  • [JavaScript] 변수와 상수 그리고 자료형...
  • [JavaScript] 는 무슨 역할을 하는 언어일까?
“하루하루가 새로운 인생이다.”
“하루하루가 새로운 인생이다.”
제가 배운 지식을 정리하고 오래 기억하고 싶어서 만든 블로그입니다.
  • “하루하루가 새로운 인생이다.”
    땅콩
    “하루하루가 새로운 인생이다.”
  • 전체
    오늘
    어제
    • 분류 전체보기 (63)
      • 일상 (2)
      • 에러처리 (0)
      • 프로그래밍 언어 (34)
        • TypeScript (21)
        • JavaScript (6)
        • 퍼블리싱 ( HTML, CSS ) (7)
        • 코테 (0)
      • 프레임워크 및 라이브러리 (10)
        • React (10)
        • Next.js (0)
        • Vue.js (0)
        • Spring Boot (0)
      • 데이터베이스 (0)
        • Oracle (0)
      • 디자인 (0)
        • Figma (0)
      • 개발 도구 (5)
        • Git (4)
        • Docker (0)
        • IDE (1)
      • 프로젝트 (0)
        • 개인 프로젝트 (0)
        • 팀 프로젝트 (0)
        • 프로젝트 회고 (0)
      • 정보처리기사 (12)
        • 1과목 (4)
        • 2과목 (2)
        • 3과목 (2)
        • 4과목 (2)
        • 5과목 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    한 입 크기로 잘라먹는 타입스크립트
    정처기
    정보처리기사
    css
    타입 스크립트
    자바스크립트
    javascript
    타입스크립트
    js
    이정환
    GIT
    벼락치기
    TypeScript
    Hook
    타입 별칭
    React
    인터페이스
    HTML
    리액트
    웹
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
“하루하루가 새로운 인생이다.”
[JavaScript] 클래스
상단으로

티스토리툴바