본문 바로가기

JAVASCRIPT

class

class

생성자의 기능을 대체

  • 함수로 호출될 수 없음
  • 클래스 선언은 let과 const처럼 블록 스코프에 선언, 호이스티잉 일어나지 않음
  • 클래스의 ㅔ소드 안에서 super 키워드 사용
// 클래스
class Person {
  // 이전에서 사용하던 생성자 함수는 클래스 안에 `constructor`라는 이름으로 정의
  constructor({name, age}) {
    this.name = name;
    this.age = age;
  }

  // 객체에서 메소드를 정의할 때 사용하던 문법을 그대로 사용하면, 메소드가 자동으로 `Person.prototype`에 저장
  introduce() {
    return `안녕하세요, 제 이름은 ${this.name}입니다.`;
  }
}

const person = new Person({name: '윤아준', age: 19});
console.log(person.introduce()); // 안녕하세요, 제 이름은 윤아준입니다.
console.log(typeof Person); // function
console.log(typeof Person.prototype.constructor); // function
console.log(typeof Person.prototype.introduce); // function
console.log(person instanceof Person); // true

'JAVASCRIPT' 카테고리의 다른 글

비동기 프로그래밍  (0) 2020.07.30
큐, 스택, 트리 자료구조  (0) 2020.07.30
내장 객체 및 생성자  (0) 2020.07.30
연산자  (0) 2020.07.29
함수형 프로그래밍  (0) 2020.07.28