Daehyunii's Dev-blog

<모던자바스크립트 22장 this> TIL-37 본문

✏️ 2022. TIL/July

<모던자바스크립트 22장 this> TIL-37

Daehyunii 2022. 7. 19. 21:54

  오늘은 this 키워드에 대해서 배웠다. this 키워드는 자기 참조 변수로서 함수 호출 방식에 의해서 가리키는 것들이 달라진다. 일반 함수로 호출하는 경우에 this는 전역객체 window를 가리키고, 메서드로 함수를 호출하는 경우에는 해당 메서드를 호출한 객체를 가리키며, 생성자 함수로 호출한 경우에는 해당 생성자 함수가 생성할 인스턴스를 가리킨다. 또한 명시적으로 this 바인딩을 할 수 있도록 Function생성자 함수의 프로토타입 메서드를 통해서 함수를 호출하는 apply와 call 메서드, 그리고 호출을 별도로 해야하지만 명시적으로 this 바인딩을 하는 bind 메서드에 대해서 배웠다. this 키워드는 처음 학습하는데는 어려움을 겪을지 몰라도 제대로 이해하고 활용하는 능력까지 갖춘다면, 굉장히 효율적인 기능이라고 생각이 든다. 특히, 생성자 함수로 호출하는 경우 생성자 함수 자신이 생성할 인스턴스를 가리키는데, 생각해보면 함수 정의가 먼저 평가되고 함수 객체로 만들어 진 다음에야 생성자 함수를 new 연산자와 함께 호출하여 인스턴스를 만들 수 있게 되는 것인데, 생성자 함수에서 생성할 객체(아직 만들어 지지 않은)를 가리키게 만들어 줄 수 있는 방법이 this 키워드로 바로 해결하니 말이다. 프로그래밍을 공부하면서 가장 많이 느낀점은 '이유 없는 기능들은 없구나' 라는 생각이며, 또 반대로 많은 기능들 중에서 효율적이고 유용한 기능과 사용하기에는 조금 비효율적인 기능들을 잘 구별해야 할 것 같다. 실무에 대해서는 잘 모르지만 this 키워드는 딱 봐도 매우 중요한 개념이며 로직을 정확하게 이해할 필요가 있을것 같다.

 

2022.07.19 - [언어 공부 및 정리/자바스크립트[모던자바스크립트]] - 22장 this

 

22장 this

22.1 this 키워드 객체의 동작을 나타내는 메서드는 자신이 속한 객체의 상태, 즉 프로퍼티를 참조하고 변경할 수 있어야 한다. 이때 메서드가 자신이 속한 객체의 프로퍼티를 참조하려면 먼저 자

pinetree93.tistory.com