Development/Javascript
[Javascript] 스코프 바인딩(Scope Binding)
레오나르도 다빈츠
2021. 7. 7. 21:07
출처
자바스크립트 중고급: 근본 핵심 이해 - 인프런 | 강의
4개 강좌로 구성된 자바스크립트 바이블 강좌의 2번째 강좌입니다. 자바스크립트 엔진 이해를 통해 자바스크립트에 최적화된 프로그램을 개발할 수 있습니다. 자신 있게 시스템을 설계할 수 있
www.inflearn.com
🚀 스코프 바인딩(Scope Binding)
⚡ 한번 더 보기!! 예제코드의 바인딩&실행순서와 함수 초기화 3단계 과정 자세히 보기 :)
◽ 바인딩이란?
구조적으로 결속된 상태로 만드는 것을 바인딩(binding)이라고 한다.
대상은 바뀔 수 있는 '값'이 아니라, 프로퍼티의 '이름'이다.
◽ 바인딩의 목적
스코프를 설정하고 식별자를 해결하는 것이다.
◽ 바인딩의 종류
1) 정적 바인딩(Lecival, Static binding)
자바스크립트는 대부분 정적 바인딩을 한다.
함수가 호출되는 초기화 단계에서 함수 선언문 이름, 표현식 이름을 바인딩한다.
2) 동적 바인딩(Dynamic binding)
실행할 때 바인딩 하는 것으로, eval() 함수와 with문이 있다.
- eval(): 파라미터에 작성된 문자열을 parsing, 해석 한 후 실행할 때 마다 바인딩
- with문: 반복할 때 마다 바인딩
◽ 바인딩 시점의 중요성
- 바인딩 할 때 스코프가 결정되기 때문에 바인딩 시점이 중요하다.
- 스코프를 Function Object의 [[scope]]에 설정하는데, 이는 변경되지 않는 정적 스코프이다.