본문 바로가기

JavaScript3

[코어 자바스크립트] 3.클로저 1. 클로저란? 외부함수의 변수를 참조하는 내부함수가 외부로 전달될 경우 외부함수가 종료되어도 참조되는 변수가 메모리에 살아있는 현상 → GC의 대상이 되지 않습니다. [6]번째 줄에서 inner함수 자체를 반환했습니다. [8]번째 줄에서 outer2변수가 outer함수의 실행을 통해 반환된 inner함수를 참조합니다. inner함수의 실행컨텍스트는 아래와 같습니다. outerEnvironmentRecord : { (선언된 시점) == outer 함수의 Lexical Environment } enrivonmentRecord : { } [9, 10]번째 줄에서 함수를 실행하면 스코프체인을 통해 outer 함수의 Lexical Environment의 a변수에 접근합니다. outer 함수가 종료되었음에도 Le.. 2021. 6. 26.
[코어 자바스크립트] 2.this의 개념 및 상황별 this 바인딩 원리 1. 들어가기 전 바인딩이란? : 프로그램에서 변수들이 갖는 속성이나 값이 결정되는 것입니다. 다른 대부분의 객체지향 언어에서의 this : 클래스로 생성한 인스턴스 객체로, 클래스에서만 사용이 가능합니다. 자바스크립트에서의 this : 상황에 따라 바라보는 대상이 달라지며 어디서든 사용이 가능합니다. 따라서 작동 방식을 잘 이해해야만 혼란을 줄일 수 있습니다. 2. 상황에 따라 달라지는 this 자바스크립트에서의 this는 기본적으로 실행 컨텍스트가 생성될 때 함께 결정됩니다. 실행 컨텍스트는 함수를 호출할 때 생성되므로 this는 함수를 호출할 때 결정된다고 말할 수 있습니다. 전역 공간에서의 this 전역 공간에서 this는 전역 객체를 가리킵니다. 전역 공간에서만 발생하는 특이한 성질 브라우저상에.. 2021. 6. 24.
[코어 자바스크립트] 1.실행 컨텍스트와 스코프, 호이스팅 1. 실행 컨텍스트 실행 컨텍스트란 실행할 코드에 제공할 환경 정보들을 모아놓은 객체입니다. 동일한 환경에 있는 코드들을 실행할 때 필요한 환경 정보들을 모아 컨텍스트를 구성하고 이를 콜스택에 쌓아 올립니다. 실행 컨텍스트는 전역공간이 생성될 때, 함수가 호출될 때 생성됩니다. 실행 컨텍스트와 콜 스택 예제 코드 실행시, 전역공간이 활성화되면서 전역 컨텍스트가 생성되고 함수 호출 순서대로 콜스택에 실행 컨텍스트가 쌓이는것을 확인할 수 있습니다. 실행 컨텍스트가 담고 있는 정보 Variable Environment environmentRecord (snapshot) : 현재 컨텍스트 내의 식별자들에 대한 정보 outerEnvironmentReference (snapshot) : 외부 환경 정보 Lexica.. 2021. 6. 23.