반응형
$("#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
'코딩 > 자바스크립트' 카테고리의 다른 글
[JS] Form 태그 전송시키기 (0) | 2022.01.06 |
---|---|
[자바스크립트] 화살표 함수의 제약. (0) | 2022.01.05 |
[자바스크립트] input 태그는 숨겨져있으면 복사 불가. (0) | 2021.07.20 |
css, scss, styled-component 현업에서 사용할때 느낀 점. (0) | 2021.07.16 |
비밀번호 정규식 일치여부 확인 방법 (0) | 2021.07.12 |