코딩/자바스크립트
[자바스크립트] 화살표 함수 안에서 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