event 함수에서 this가 가르키는 것

Park, Jinyong·2020년 4월 19일
0

Question & Answer

목록 보기
2/3

QUESTION

let arr = ['one', 'two', 'three']
function event() {
  console.log(this); // element
  arr.forEach(function() {
    console.log(this); // window 객체
  });
}
element.onclick = event;

위 코드에서 event() 안에 forEach 내부의 thiswindow 객체를 가리키는 이유는 무엇인가요?

ANSWER

콜백함수의 thiswindow에 바인딩된다. 따라서 콜백함수에 .bind(this)를 사용하거나 혹은 화살표 함수를 사용해야 한다.


event 함수 내에서 this가 가리키는 것은 event.currntTarget이다. 코드스테이츠에서 배운 this의 다섯 가지 패턴에 포함되어 있지 않은 특수한 경우이다.

0개의 댓글

관련 채용 정보