내일배움캠프 Node.js 본캠프 9일차

김선우·2024년 8월 16일
post-thumbnail

배운 것

this

this - 실행 컨텍스트가 생성될 때 결정됨(bind됨)

상황에 따라 달라지는 this

전역 환경에서 this -> 노드(global 객체), 브라우저(window 객체)

메서드로 호출될 때와 함수로 호출될 때의 this -

함수 - 그 자체적으로 실행될 수 있음(독립성) => 함수는 호출의 주체가 없음 - this가 전역 객체
메서드 - 종속적인 것 -> 자신을 호출한 대상 객체에 대한 동작을 수행. => 메서드는 호출의 주체가 있음 - this가 호출의 주체
함수로서의 호출과 메서드로서의 호출 구분 기준 - . []

메서드 내부 함수에서의 this 우회

-변수를 활용하는 방법 - 내부 스코프에 이미 존재하는 this를 별도의 변수에 할당하는 방법.
-화살표 함수 - this 바인딩 과정 x => this가 이전 값 - 상위값이 유지됨.

콜백 함수 호출 시 그 함수 내부에서의 this

콜백 함수 : 어떠한 함수, 메서드의 인자로 넘겨주는 함수
콜백 함수 내부의 this는 메서드가 정한 규칙에 따라 값이 결정됨.
콜백 함수 = 함수 -> this는 전역 객체를 참조. (예외 : 메서드에서 콜백 함수에 별도로 this를 지정한 경우 -> 그 대상을 참조.)

콜백 함수

다른 코드에 인자로 넘겨주는 함수 - 인자로 넘겨준다? => 콜백 함수를 받는 주체가 있다.(forEach, setTimeout 등)
콜백 함수를 받은 코드는 콜백 함수를 필요에 따라 적절한 시점에 실행하게 도미 => 제어권을 가지고 있다.
콜백 함수 = 다른 코드에게 인자로 넘겨줌으로써 그 제어권도 함께 위임한 함수.

콜백 함수의 주체가 되는 코드는 무슨 제어권을 갖는가

호출 시점에 대한 제어권.(setTimeout, setInterval등)

setInterval - 각 호출 사이에 고정된 시간 지연으로 함수를 반복적으로 호출할 때 유용. => 반복해서 매개변수로 받은 콜백 함수의 로직을 수행

인자에 대한 제어권

map - 배열에 대한 api, 배열에 대한 메서드.
map으로 원하는 값을 얻기 위해서는 정의된 규칙대로 써야함. => 콜백 함수를 넘겨받은 코드에 제어권이 있음 - 제어권이 넘어갈 함수의 규칙에 맞게 호출해야함.

this

제어권을 넘겨받을 코드에서 콜백 함수에 별도로 this가 될 대상을 지정한 경우에는 그 대상을 참조한다.

느낀점

몇번의 복습을 더 해봐야 내용을 제대로 이해할 수 있을 것 같다. 기본기를 쌓다가 심화과정이 되니 난이도가 확 올라간 느낌?

0개의 댓글