인프런 강의 보면서 정리해두기.

  1. this는 지난번에 한번에 듣고 2. 실행 컨텍스트에 같이 정리해둬서 3번 없이 4번으로 정리


callback function

다른 함수의 인자로 함수를 전달해서 넘기는 대상에게 해당 함수에 대한 제어권을 위임한다.

특별한 요청(bind)가 없으면 미리 정해놓은 방식에 따라 콜백 함수가 호출된다.

넘기게 되는 제어권 : 실행 시점, 매개 변수, this


콜백함수는 메서드가 아님

객체.함수();

위의 경우 함수는 메서드로 ‘호출’되어 실행됨 : this = 객체


배열.forEach(객체.함수);
// 함수자체를 '전달' = 호출은 forEach가 함

위의 경우 함수는 인자로 ‘전달’되어 forEach의 방식으로 호출됨 : this = window


실행 시점

let 함수 = function() {
  실행 내용;
}

setInterval(함수, 1000);

함수를 setInterval에 넘겨서 알아서 실행시키도록 함


매개 변수

let 배열 = [1,2,3,4,5];

배열.forEach(함수(배열 요소, 인덱스){
  실행 내용;
}, thisArg(생략 가능));

forEach의 규칙에 따라야 제대로 동작할 수 있음


this

함수(x){
  console.log(this); // this = 이벤트 타겟 = 엘리먼트
  console.log(x); // 이벤트 객체
}
엘리먼트.addEventListener('이벤트타입', 함수);

this값 이벤트 타겟으로 넘어가도록 정의됨

this값 변경하고 싶으면 함수.bind(this지정)