728x90
반응형
알반 함수로 호출.
function Counter() {
this.count = 0;
setInterval(function() {
this.count++;
console.log(this.count); ---> 결과가 NaN으로 나옴.
}, 2000);
}
const counter = new Counter();
이 코드를 화살표 함수로 바꾸면 값이 제대로 나옴.
function Counter() {
this.count = 0;
setInterval( () => {
this.count++;
console.log(this.count); ---> 결과가 1씩 증가하며 제대로 나옴.
}, 2000);
}
this는 함수가 호출된 방법에 따라 값이 달라짐.
그러나 화살표함수에서는 함수가 정의된 시점에서 상위 스코프의 this 를 참조한다.
렉시컬 스코프는 함수의 호출방법이 아니라, 함수가 선언된 위치에 따라 스코프가 결정되는 방식.
728x90
반응형
'IT > JavaScript와 Framework' 카테고리의 다른 글
지금 스벨트(Svelte)를 배워야 하는 이유 출처: https://yozm.wishket.com/magazine/detail/3153/ [지금 (0) | 2025.05.28 |
---|---|
자바스크립트 생성자 함수 안에 this 없이 "내부 함수"를 작성하는 방법 (0) | 2025.04.29 |
자바스크립트 객체선언, 생성자함수, class 문법 (0) | 2025.04.29 |
크롬 개발자도구에서 JQuery가 바로 실행되는 이유. (0) | 2025.04.28 |
자바스크립트 콜백지옥 해결법, 비동기 통신 (0) | 2025.04.01 |
댓글