1 분 소요

오늘 한 일

  • GitHub Blog 방문자 수 삭제

  • GitHub 댓글기능 추가 -> utterances를 이용했다. utterances는 GitHub 계정 소유자들만 댓글을 달 수 있지만 가볍고 이상한 광고가 내 블로그에 안뜬다는 장점이 있다.


  • Javascript 의 Class 문법

class는 객체를 생성해주는 템플릿 같은 개념이고 이런 템플릿은 재사용성에 도움이 된다. es6부터 등장했고 모던한 객체지향프로그래밍이라고 하면 클래스를 많이 다루고 많이 한다고 한다.

class Apple {
  constructor(name, emoji) {
    this.name = name;
    this.emoji = emoji;
  }
  //메서드 생성
  hardeware = () => {
    console.log(`${this.name}: ${this.emoji}`);
  };
}

class를 생성하려면 class선언을 해줘야 한다. constructor(생성자)를 이용하여 초기값을 설정해줄 수 있고 반드시 class내부엔 1개만 존재가능하다. 그 이상은 Syntax Error가 발생한다. 생성자 안에 객체를 this 형태로 링크해주는 작업이 필요하다.

const iphone = new Apple('iphone', '📱');
console.log(iphone);

// Apple { hardeware: [Function: hardeware], name: 'iphone', emoji: '📱' }

new 연산자를 이용해 constructor와 링크되어 호출이 된다. 여기에서 const iphone은 Apple이란 class의 인스턴스에 해당한다. 일반 const obj = {name: ‘kiheon’} 와 같은 객체는 일반객체일 뿐 그 어떤 클래스의 인스턴스도 아닌 것이다.

이렇게 기본적인 class를 생성하는 방법을 공부하면서 추가적으로

class를 이용한 재사용성을 높이는 방법으로 static을 이용하여 class별로 공통적으로 사용할 수 있고 만들어진 인스턴스의 데이터에 참조할 필요가 없는 함수 등을 만들 수도 있는 것 ex) Math.pow(); 와 Number.isFinite(1); 등 static을 이용하면 우리가 객체를 별도로 만들지 않아도 하나의 클래스 안에 비슷한 내용의 함수들을 묶어서 관리할 수 있다는 장점등을 공부했다.

내일 할 일

오늘 배우고 TIL을 작성하면서 class문법에 부족함을 느꼈다.

  • class의 field 부분의 접근제어자 역할
  • class의 getter, setter
  • class의 extends

태그:

카테고리:

업데이트:

댓글남기기