강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

seed님의 프로필 이미지
seed

작성한 질문수

코어 자바스크립트

바인딩에 대한 이해

해결된 질문

작성

·

258

0

2-4. 메소드

코드를 보고 왜 이러한 결과물이 나오는지에 대해서는 설명을 통해서 알겠는데 this 를 바인딩 한다는 것에서 바인딩 이라는 것을 어떻게 이해해야 좋을 지 알고싶습니다. 바인딩에 대해 조금 찾아보니 특정객체에서 실행되게끔 고정시키는 역할, 속성과 개체사이의 연관 이런 식으로 나오는데 애매하게 넘어가면 중요한 부분을 놓치고 가는 것 같아서 여쭤봅니다.

답변 1

2

정재남님의 프로필 이미지
정재남
지식공유자

https://www.inflearn.com/unit/2-3-%ED%95%A8%EC%88%98%EC%8A%A4%EC%BD%94%ED%94%84-%EC%8B%A4%ED%96%89%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8/
바로 앞 강의 내용에서 실행컨텍스트에 대해 설명하면서, this 바인딩에 관해 언급한 바 있습니다.
bind는 '묶다, 결속시키다' 라는 의미입니다.
execution context가 생성될 때 자바스크립트 엔진은 해당 함수 또는 메소드를 실행시키기 위해 필요한 정보들, 즉 어떤 지역변수들이 선언되었는지, this에는 무엇이 담겨야 하는지 등의 정보들을 정하는 작업을 수행하는데, 이 때 this의 정보를 담는 과정을 흔히 '바인딩한다'라고 표현합니다.
여타의 언어들과 달리 자바스크립트는 new 연산자, 프로토타입 체이닝 혹은 call, apply 등에 의해 각 상황별로 실행되는 시점에 비로소 this에 대상이 연결되는 '동적' 바인딩이 이뤄집니다. 함수 또는 메소드 내부에서 this를 어떤 것으로 인식할 것인지가 해당 함수 또는 메소드를 호출하는 시점에 결정된다고 이해하시면 되겠습니다.

seed님의 프로필 이미지
seed

작성한 질문수

질문하기