[Javascript] 실행 컨텍스트
실행하는 환경 실행되는 환경 실행되는 공간 컨텍스트의 원칙 먼저 전역 컨텍스트 하나 생성 후, 함수 호출 시마다 컨텍스트가 생깁니다. 컨텍스트 생성 시 컨텍스트 안에 변수객체(arguments, variable), scope chain, this가 생성됩니다. 컨텍스트 생성 후 함수가 실행되는데, 사용되는 변수들은 변수 객체 안에서 값을 찾고, 없다면 스코프 체인을 따라 올라가며 찾습니다. 함수 실행이 마무리되면 해당 컨텍스트는 사라집니다.(클로저 제외) 페이지가 종료되면 전역 컨텍스트가 사라집니다. '컨텍스트': { 변수객체: { arguments: [{ word : 'hello' }], variable: null, }, scopeChain: ['wow 변수객체', '전역 변수객체'], this: wi..
[Javascript] 클로저란? private 변수, 메소드의 관점
여러가지 정의들 중에, 개인적으로 좀 더 직관적으로 받아들여 졌던 정의는, 다음과 같다 클로저란, 생성한 시점의 스코프체인을 기억하여, 비공개 변수를 가질수 있는 환경에 있는 함수이다. 이 외, 다른 정의들 MDN) 클로저는 독립적인 변수를 가리키는 함수이다. 또는 클로저 안에 정의된 함수는 만들어진 환경을 기억한다. 함수와 렉시컬 환경의 조합 함수가 생성될 당시의 외부변수를 기억하여 생성 이후에도 계속 참조가 가능한 것 생성한 시점의 스코프체인을 계속 들고있는 함수 일단 실무에서는 private 변수를 사용하기 위한 것으로 많이 쓰인다. 선행지식 스코프체인 스코프는 일단 범위라는 뜻인데, 간단하게 브라켓{}, 블록 안 저장소라고 생각하자. 블록별로 (if문, 함수선언문, while...등) 자기만의 스..