
자바스크립트에서 public, private ? 자바스크립트는 변수에 접근 제한자 (public, private, protected 등)을 직접 부여하도록 설계되어 있지 않고, 클로저를 이용하여 함수 차원에서 public한 값과 private한 값을 구분하는 것이 가능합니다. 외부에 제공하고자 하는 정보들을 모아서 return 하고, 내부에서만 사용할 정보들은 return 하지 않는 것으로 접근 권한 제어를 할 수 있습니다. 따라서 return 한 변수들은 public, 그렇지 않은 변수들은 private 한 상태가 됩니다. let outer = function() { let a = 1; let inner = function() { return ++a; }; return inner; // 함수의 실행 결..

클로저 개요 클로저(Closure)는 여러 함수형 프로그래밍에서 등장하는 특성으로, 문헌 별로 다르게 정의되고 있습니다. MDN (Mozila Developer Network)에서는 클로저에 대해 "함수와 그 함수가 선언될 당시의 lexical environment의 상호 관계에 따른 현상"이라고 소개합니다. LexicalEnvironment는 자바스크립트에서 실행 컨텍스트를 생성 및 실행하는 과정에 사용되는 컴포넌트로, environmentRecord, outerEnvironmentReference, thisBinding 등의 작업을 통해 변수의 유효범위인 스코프가 결정되고, 스코프 체인이 가능해집니다. 이 중 outerEnvironmentReference는 현재 컴포넌트에서 변수를 찾지 못하면 외부 ..