Javascript ES6 Classes

2023. 5. 16. 19:49Javascript

ES6 에서 나온 Class 를 이용해서 쉽게 OOP 를 구현할 수 있다.

문법은 OOP 방식을 이용하지만 내부에서는 prototype 을 사용하며 작동한다.

class Person {
  constructor(name, age, job) {
    this.name = name;
    this.age = age;
    this.job = job;
  }
  sayHello() {
    return `안녕 나는 ${this.name}야 정말 반가워`;
  }
}

const yeon = new Person("yeon", 29, "false");
console.log(yeon);
console.log(yeon.sayHello());

- constructor 는 인스턴스의 생성과 동시에 클래스 필드의 생성과 초기화를 실행, 또 constructor 는 생략가능하고 constructor() 는 new 에 의해서 자동으로 호출된다.

- this 는 클래스가 생성할 인스턴스를 가르킴


Static 사용

 

prototype 이 아닌 클래스 함수 자체에 메서드를 생성 가능하다. 이것이 static 메서드이다.

class Person {
  constructor(name, age, job) {
    this.name = name;
    this.age = age;
    this.job = job;
  }
  sayHello() {
    return `안녕 나는 ${this.name}야 정말 반가워`;
  }
  static sumAllNumbers(min, max) {
    let result = 0;
    for (let i = min; i < max + 1; i++) {
      result += i;
    }
    return result;
  }
}

// const yeon = new Person("yeon", 29, "false");
// console.log(yeon);
// console.log(yeon.sayHello());
console.log(Person.sumAllNumbers(1, 10));

/* === 실행 결과 ===
55
*/

 

'Javascript' 카테고리의 다른 글

Javascript 클로져 ( Closure )  (0) 2023.05.16
Javascript OOP 상속  (0) 2023.05.16
Javascript 프로토타입 ( prototype )  (0) 2023.05.16
Javascript OOP 객체지향 특징  (0) 2023.05.16
Javascript DOM  (0) 2023.05.16