this
-
20221116 TIL 다시 만난 자바스크립트 thisTIL 2022. 11. 16. 08:18
몇 주 전에 날을 잡고 반드시 this를 정복하리라 하고 this개념 정리를 했었는데, (https://yomiju.tistory.com/254) 객체 지향적으로 UI 상태 관리를 하면서 this를 다시 만나게 되었다. 처음에는 원하는 대로 동작하지 않아 매우 당황스러웠고, 도대체 무엇이 문제인지 한참 찾아보았다. 그래도 한 번 정리를 해둔 덕분에 2시간 만에?! 문제를 해결할 수 있었다. 사실 정리를 했음에도 쓰면서 this가 무엇을 가리키는지 판단하지 않고 자바스크립트 클래스에서 자바처럼 썼다가 계속 있어야 되는 필드가 undefined여서 프로그램이 터지는 일이 발생했다. 모든 코드를 다 돌아보다가 잘못된 부분이 없어서 믿고 있던 해당 부분의 this.schedule을 로그로 찍어봤는데 계속 에러가..
-
20221025 TIL 신기한 JS thisTIL 2022. 10. 25. 15:51
자바스크립트에서는 this가 조금 특이하다. this는 함수를 실행/호출하는 객체가 된다. 따라서 누가 함수를 실행하냐에 따라 this가 달라진다. 또한 this는 변수가 아니고 keyword이기 때문에 값을 대입할 수도 없다! 객체.메소드(); 꼴을 이용하는 경우에는 메소드에서 사용한 this는 객체가 된다. 하지만 그냥 함수(); 꼴을 이용하는 경우에는 함수 내부에서 사용한 this는 global object나 undefined(strict mode)가 된다. 그리고 이벤트 안의 this는 이벤트를 받은 요소를 가리킨다. 만약 this를 원하는 대로 지정하고 싶다면 call, apply, bind 메서드를 사용하면 this를 원하는 객체로 바인딩(설정)할 수 있다. 또한 화살표 함수에서 this는 상..