OOP에 대해서 좀 더 심화적으로

이동환·2020년 9월 11일
1

TIL

목록 보기
27/74

이번 TIL은 OOP를 혼자 공부하면서 내가 오해했었던 부분이나 주의점에 대해서 적겠다.

1. Constructor (생성자)

생성자에 대해서 오해하고 있었다. 생성자는 인자를 받아서 그냥 그 인자를 this.메소드 or this.프로퍼티에 대입만 해주는 역할을 한다고 알고있었다. 아래의 코드와 같이, 그 역할만 하는줄 알았다.

class Person{
  constructor(name){
    this.name = name;
  }
}

그러나 이번 sub-dance-party 스프린트를 하면서 배운점은 컨스트럭트에서 실행을 시키면 인스턴스를 만들때, 바로 그 메소드를 같이 실행 시켜준다는것이었다.

class Person{
  constructor(name){
    this.name = name;
    speak();  // 인스턴스 생성 후, speak이라는 메서드 바로 실행
  }
  speak(){
    return `hi I am ${this.name}`
  }
}

2. bind, call , apply

이 전에 배웠던 개념들이다. 개념적으로 왜 이것들을 사용하는지는 알고 있었지만, 어떻게 응용하는지 몰랐었다. 까먹지 않게 기억해두야 할거 같다.

3. 비동기에서 this

이 부분도 알고 있었던 부분이지만, 익숙하지않아서 스프린트때 이 this를 까먹고 있었다. Dancer를 만드는 부분이었다.

Dancer.prototype.step = function () {
  setTimeout(this.step(), this.time);
};

처음에 이와같이 작성하였고, 왜 무엇이 틀린건지 몰랐었다. 근데 이젠 안다. 정답의 코드는 적지않겠다. 궁금하시다면 비동기와 this가 가르키는것이 무엇인지 공부하도록 !

profile
UX를 개선하는것을 즐기고 새로운것을 배우는것을 좋아하는 개발자입니다.

0개의 댓글