CodeGym /행동 /Frontend SELF KO /클래스 문법

클래스 문법

Frontend SELF KO
레벨 39 , 레슨 4
사용 가능

5.1 클래스 선언

ECMAScript 6 (ES6)이 도입되면서 JavaScript에는 객체를 생성하고 상속을 관리하기 위한 새로운 구조인 class 키워드가 생겼어. 클래스는 객체를 생성하고 프로토타입을 다루기 위한 더 편리하고 이해하기 쉬운 문법을 제공해.

JavaScript의 클래스는 기존 프로토타입 기반 상속 시스템에 대한 문법적 설탕이지. 객체의 생성과 관리를 더 이해하기 쉽게 만들어줘.

클래스 선언

JavaScript에서 클래스는 class 키워드를 사용하여 선언해. 그 뒤에 클래스 이름이 와. 클래스 본문은 중괄호 {} 안에 있지.

예시:

JavaScript
    
      class Person {
        // 클래스 메서드
        greet() {
          console.log('Hello!');
        }
      }

      // 클래스의 인스턴스 생성
      const person = new Person();
      person.greet(); // 출력: Hello!
    
  

클래스 표현식

클래스를 선언하거나 표현식으로 작성할 수 있어. 클래스 표현식은 이름 붙여지거나 익명일 수 있어.

이름 있는 클래스 예시:

JavaScript
    
      const Person = class PersonClass {
        greet() {
          console.log('Hello!');
        }
      };

      const person = new Person();
      person.greet(); // 출력: Hello!
    
  

익명 클래스 예시:

JavaScript
    
      const Person = class {
        greet() {
          console.log('Hello!');
        }
      };

      const person = new Person();
      person.greet(); // 출력: Hello!
    
  

5.2 클래스의 필드와 메서드

클래스 속성

ES6에서 클래스 속성은 생성자 안에서만 선언할 수 있어. 그러나 JavaScript의 새 버전(ES2022)에서는 생성자 밖에서도 속성을 선언할 수 있는 클래스 필드가 도입되었어.

생성자에서 속성을 사용하는 예시:

JavaScript
    
      class User {
        constructor(username, email) {
          this.username = username;
          this.email = email;
        }
      }

      const user = new User('john_doe', 'john@example.com');

      console.log(user.username); // "john_doe"
      console.log(user.email); // "john@example.com"
    
  

클래스 필드를 사용하는 예시 (ES2022):

JavaScript
    
      class User {
        username = 'default_username';
        email = 'default@example.com';

        constructor(username, email) {
          this.username = username;
          this.email = email;
        }
      }

      const user = new User('john_doe', 'john@example.com');

      console.log(user.username); // "john_doe"
      console.log(user.email); // "john@example.com"
    
  

설명:

  • 첫 번째 예시에서 속성 usernameemail은 생성자 안에서 선언되고 초기화돼
  • 두 번째 예시에서는 속성 usernameemail이 생성자 밖에서 클래스 필드로 선언돼

클래스 메서드

클래스는 클래스 본문 안에 정의된 메서드를 포함할 수 있어. 이 메서드들은 자동으로 생성된 객체의 프로토타입에 추가돼.

클래스 메서드의 예시:

JavaScript
    
      class Animal {
        speak() {
          console.log('Animal speaks');
        }

        eat() {
          console.log('Animal eats');
        }
      }

      const animal = new Animal();
      animal.speak(); // 출력: Animal speaks
      animal.eat();   // 출력: Animal eats
    
  

5.3 클래스 사용 예시

복잡한 객체 생성

클래스를 사용하면 다양한 메서드와 속성을 가진 복잡한 객체를 만들 수 있어.

예시:

JavaScript
    
      class Car {
        constructor(brand, model) {
          this.brand = brand;
          this.model = model;
        }

        startEngine() {
          console.log(`${this.brand} ${this.model} engine started.`);
        }

        stopEngine() {
          console.log(`${this.brand} ${this.model} engine stopped.`);
        }
      }

      const myCar = new Car('Toyota', 'Camry');
      myCar.startEngine(); // 출력: Toyota Camry engine started.
      myCar.stopEngine();  // 출력: Toyota Camry engine stopped.
    
  
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION