클래스

GunYong·2023년 7월 12일
0

this

객체는 상태를 나타내는 프로퍼티와 동작을 나타내는 메서드를 하나의 묶음으로 나타낸 것이 객체지향 프로그래밍이다.

이때 메서드가 자신이 속한 객체의 프로퍼티를 참조하려면 먼저 자신이 속한 객체를 가리키는 식별자가 있어야 한다.

this 는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수이다. this를 통해서 자신이 속한 객체의 프로퍼티나 메서드를 참조할 수 있다.

예로 일반적으로 자기 자신이 속한 객체를 재귀적으로 참조하지 않는다.

const Circle = {
  readius : 5,
  getDiameter() {
    return 2 * Circle.radius;
  }
};

대신에 this를 사용한다. 여기서 this 는 CIrlce을 가리킨다.

const Circle = {
  readius : 5,
  getDiameter() {
    return 2 * this.radius;
  }
};

class

함수 지향 프로그래밍을 했던 경험이 커서 클래스에 대해 공부할 기회가 적었다.

클래스도 함수이다. 일급 객체이자 0개 이상의 메서드를 정의하고 메서드에는 constructor, 프로토타입 메서드, 정적 메서드가 존재한다. 기본 클래스 예시는

class Person {
  constructor(name) {
    this.name = name;
  }
  
  // 메서드 생성
  sayHi() {
    console.log(`hi! ${this.name}`);
  }
  
  // 정적 메서드
  static sayHello() {
    console.log('hi');
  }
}

// 인스턴스 생성
const me = new Person('Lee');
console.log(me.name);
me.sayHi();
Person.sayHello();

constructor

constructor는 인스턴스를 생성하고 초기화하기 위한 특수한 메서드이다.

constructor 내부에서 return문은 반드시 생략한다.

정적 메서드

인스턴스를 생성하지 않아도 호출할 수 있다.

0개의 댓글