'바인딩'이란 프로그램을 구성하는 어떤 구성 요소의 실제 값 또는 프로퍼티를 결정짓는 행위를 말한다.
자바스크립트에서 많이 사용되는 개념인 this
바인딩 역시 this
특정 객체 또는 값을 가리키도록 하는 행위를 말한다.
바인딩에는 정적 바인딩과 동적 바인딩이 있다.
정적 바인딩은 바인딩이 코드 실행 전 컴파일 단계에서 이루어지는 것을 말한다.
자바스크립트는 추후 설명할 동적 바인딩을 주요 특징으로 내세우기 때문에 정적 바인딩을 하는 경우가 드물다.
대표적으로 ES6에서 import
문을 통해 모듈을 임포트하는 경우, 가져온 모듈의 함수, 변수 등을 정적 바인딩 한다.
동적 바인딩은 바인딩이 런타임 도중에 이루어지는 것을 말한다.
자바스크립트에서 대부분의 바인딩은 동적 바인딩으로 이루어진다.
대표 예시는 다음과 같다.
this
가 가리키는 값은 함수가 언제 호출되었는지에 따라 결정됨