이번 TIL은 OOP를 혼자 공부하면서 내가 오해했었던 부분이나 주의점에 대해서 적겠다.
생성자에 대해서 오해하고 있었다. 생성자는 인자를 받아서 그냥 그 인자를 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}` } }
이 전에 배웠던 개념들이다. 개념적으로 왜 이것들을 사용하는지는 알고 있었지만, 어떻게 응용하는지 몰랐었다. 까먹지 않게 기억해두야 할거 같다.
이 부분도 알고 있었던 부분이지만, 익숙하지않아서 스프린트때 이 this를 까먹고 있었다. Dancer를 만드는 부분이었다.
Dancer.prototype.step = function () { setTimeout(this.step(), this.time); };
처음에 이와같이 작성하였고, 왜 무엇이 틀린건지 몰랐었다. 근데 이젠 안다. 정답의 코드는 적지않겠다. 궁금하시다면 비동기와 this가 가르키는것이 무엇인지 공부하도록 !