jQuery에서 클릭 이벤트 핸들러를 화살표 함수로 바꿨더니 this가 클릭한 요소가 아니라 window를 가리킵니다. 왜 그런가요?
// 이게 안 됨
$(".btn").click(() => {
$(this).addClass("active"); // this가 window?!
});jQuery에서 클릭 이벤트 핸들러를 화살표 함수로 바꿨더니 this가 클릭한 요소가 아니라 window를 가리킵니다. 왜 그런가요?
// 이게 안 됨
$(".btn").click(() => {
$(this).addClass("active"); // this가 window?!
});
댓글 4
화살표 함수는 자신만의
this를 가지지 않고, 선언된 위치의 this를 그대로 사용합니다 (lexical this).규칙: 이벤트 핸들러에서 this가 필요하면 일반 함수, 아니면 화살표 함수를 쓰세요.