본문 바로가기

JavaScript4

[Javascript] 클로저 Closure 정의 이미 생명 주기가 끝난 외부 함수의 변수를 참조하는 함수를 클로저라고 한다. 최종적으로 반환되는 함수가 외부(부모) 함수의 지역 변수에 접근할 때 발생한다. 함수가 종료되어 외부 함수의 컨텍스트가 반환되더라도 변수 객체는 반환되는 내부 함수의 스코프 체인에 그대로 남아있어야만 접근할 수 있다. 실행이 종료된(사라진) 실행 컨텍스트의 변수 객체를 다른 실행 컨텍스트의 스코프 체인으로 참조되고 있는 것 클로저라는 이름은 함수가 자유 변수에 대해 닫혀있다는 의미인데 의역하면 '자유 변수에 엮여있는 함수'라고 할 수 있다. 과정 외부 함수의 호출이 이루어지고, 이 외부 함수에서 새로운 함수가 반환된다(클로저) 반환된 함수가 클로저이고 이 클로저는 외부 함수의 지역 변수를 사용한다.(자유 변수) 반환된 클로.. 2021. 1. 5.
[Javascript] 스코프 체인 Scopechain 정의 변수와 함수의 유효 범위를 나타내는 스코프가 [[scope]] 프로퍼티로 각 함수 객체 내에서 연결 리스트 형식으로 관리되는데 이를 스코프 체인이라고 한다. ES6 이전에는 함수만이 유효 범위의 유일한 범위였지만 ES6 이후 블록 스코프(let, const)가 추가되었다. 구성 각 실행 컨텍스트의 변수 객체가 구성 요소인 리스트. 3 - ... 2 - 변수 객체 2 1 - 변수 객체 1 0 - 변수 객체 0 각각의 함수는 [[scope]] 프로퍼티로 자신이 생성된 실행 컨텍스트의 스코프 체인을 참조한다. 함수가 실행되는 순간 실행 컨텍스트가 만들어지고, 이 실행 컨텍스트는 실행된 함수(상위 컨텍스트)의 [[scope]] 프로퍼티를 기반으로 새로운 스코프 체인을 만든다. 참고 > 실행 컨텍스트 Exe.. 2021. 1. 4.
[Javascript] 실행 컨텍스트 Execution context 정의 자바스크립트가 실행될 때 생성되는 하나의 실행 단위 실행 가능한 자바스크립트 코드 블록이 실행되는 환경 실행 가능한 코드 블록은 대부분의 경우 함수가 된다. 목적 개발을 할 때 코드의 복잡성을 관리하기 위해 functions, modules, packages등으로 나눠서 사용하는 것처럼 실행 컨텐스트도 자바스크립트 엔진이 코드의 해석과 실행의 복잡성을 관리할 수 있게 해주는 것이다. 생성 아래 3가지의 경우 실행 컨텍스트가 생성된다. 전역 코드 eval() 함수로 실행되는 코드 함수 안의 코드를 실행하는 경우 생성된 실행 컨텍스트는 실행 컨텍스트 스택에 쌓이게 되고 제일 위에 위치하는 실행 컨텍스트가 현재 실행되고 있는 컨텍스트다. 현재 실행되는 컨텍스트에서 이 컨텍스트와 관련 없는 실행 코드가 실.. 2021. 1. 3.
[번역퍼오기] 꼭 알아야하는 Javascript 디자인 패턴 4가지 Javascript 디자인 패턴을 잘 정리한 번역글이 있어서 퍼왔어요.블로그에 들어가 보시면 자세한 설명을 보실 수 있어요. 꼭 알아야 하는 디자인 패턴 4가지는 Module , Prototype, Observer, Singleton 패턴입니다. [ 디자인패턴 ]1. Module 패턴2. REVEALING MODULE 패턴3. Prototype 패턴 4. REVEALING PROTOTYPE 패턴5. Observer 패턴6. PUBLISH / SUBSCRIBE 패턴7. Singleton 패턴 ※링크https://kkd927.github.io/general/web/javascript/2017/04/12/4-JavaScript-Design-Patterns-You-Should-Know.html 2017. 5. 31.