setTimeout 에서 this
81
5 asked
영상에서 setTimeout()함수 예제를 설명하실 때 setTimeout()은 this 를 별도로 처리하고 있지 않아서 전역객체로 나온다는 설명이 있는데 이 말이 setTimeout()에서 콜백함수를 별다른 처리없이 함수로써 호출하고만 있다는 뜻인가요?
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다. hcode님 질문 주셔서 감사합니다.
질문하신 내용에 대해 설명드리겠습니다. setTimeout() 함수는 비동기적으로 코드를 실행하는 데 사용됩니다. 이 함수는 두 번째 인자로 전달된 시간 후에 첫 번째 인자로 전달된 콜백 함수를 호출합니다.
setTimeout()의 콜백 함수는 기본적으로 전역 객체에서 실행됩니다. 이는 setTimeout이 콜백 함수를 호출할 때 바로 함수로서 호출하기 때문입니다. this를 별도로 바인딩하지 않고 호출되기에, 콜백 함수 안에서의 this는 전역 객체(브라우저 환경에서는 window, Node.js 환경에서는 global)를 가리키게 됩니다.
따라서 setTimeout() 안의 this를 특정 객체를 가리키도록 하고 싶다면, bind, call, apply와 같은 메소드를 사용하여 원하는 객체로 this를 명시적으로 바인딩할 필요가 있습니다.
아래 링크에서 유사한 질문과 답변을 참고하실 수 있습니다:
- bind함수대신 var self = this로 바꾸어서 만들어보려하는데요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
인스턴스에서 prototype 프로퍼티에 직접 접근해야하는 이유
0
59
1
2강부터 영상이 나오지 않습니다.
0
175
1
자바스크립트 주석에 이상한 점이 있어서 문의드립니다.
0
219
2
return 문 안에 여러 함수가 존재하는 것이 이해되지 않습니다.
1
259
1
클래스 static 멤버
1
253
1
실행컨텍스트와 스택프레임
2
567
1
프로토타입으로 상속할때 브릿지 사용 이유
0
320
1
호이스팅 관련 질문
1
335
1
책 66p. 예제 3-2 질문입니다.
0
356
1
강의 내용 10:58 캡슐화 질문입니다.
1
398
1
강의 내용 5:10 질문입니다.
1
422
2
전역 공간에서의 this
0
426
2
18:31 addEventListener의 this
1
480
1
outerEnvironmentReference 질문
1
372
1
실행 컨텍스트와 클로저에 대해 질문드립니다.
1
448
1
Object.prototype.constructor의 [[prototype]] ?
1
658
1
함수를 값으로 할당할 때
2
457
1
15:54 'ddd' 사라지는 오류?
4
375
1
프로토타입 getPrototypeOf(instance).constructor(n,a) 질문입니다.
1
404
1
기본형/가변형 질문입니당
0
333
0
선생님 그러면 섹션 0만 봐도 무방한가요!?
0
335
1
Hoisting과 environmentRecord에 관한 질문입니다.
1
291
1
안녕하세요, 데이터 변경 질문입니다.
0
328
1
선생님 class 상속파트에서 궁금한게 있습니다.
0
235
1

