코딩/자바스크립트

[자바스크립트] 화살표 함수 안에서 this 사용하기

카슈밀 2022. 1. 4. 20:59
반응형
$("#test").click(()=>{
  let dif=$(this).attr('value');
  console.log(dif);
});

위 코드의 결과물은 "undefinded"이다.

왜?

라고  생각할텐데

그 이유는 $(this)가 해당 익명함수를 가르키는 것이 아니라 window 객체를 지칭해버린다.

즉, 저 함수 내부를 지칭하는 게 아니라 함수 밖을 지칭해버림.

 

그렇기에 이를 해결하려면,

$("#test").click(function() {
  let dif=$(this).attr('value');
  console.log(dif);
});

화살표 함수를 지우고 익명함수로 바꿔버리자.

그러면 $(this)가 익명 함수를 읽어버린다.

console.log찍어보니 bind가 끊어지는 듯? 그래서 그런 듯 싶다.

728x90