클로저 2

[JavaScript] 클로저 - 2부

2. 클로저의 활용 - 캡슐화와 정보 은닉 [1] 클로저는 상태(state)를 안전하게 변경하고 유지하기 위해 사용한다. 즉, 상태가 의도치 않게 변경되지 않도록 안전하게 은닉하고 특정 함수에게만 상태 변경을 허용하기 위해 사용한다. 이를 다음의 예시로 살펴보자. let num = 0; const increase = function () { return ++num; }; console.log(increase()); // 1 console.log(increase()); // 2 console.log(increase()); // 3 num = 10; console.log(increase()); // 11 위 코드는 num 값이 전역 변수를 통해 관리되고 있기 때문에 언제든지 누구나 num값에 직접 접근하여 ..

Study/JavaScript 2023.03.27

[JavaScript] 클로저 - 1부

1. Closure 란? 자바스크립트를 학습하다보면 클로저(Closure)라는 개념에 대해 많이 들어보게 됩니다. 하지만, 클로저는 자바스크립트 고유의 개념이 아닙니다. 함수를 일급 객체로 취급하는 함수형 프로그래밍 언어들에서 사용되는 중요한 특성입니다. [1] MDN에서는 클로저에 대해 다음과 같이 정의합니다. [2] A closure is the combination of a function bundled together (enclosed) with references to its surrounding state (the lexical environment). 클로저는 함수와 함수가 선언된 렉시컬 환경의 조합이다. 즉, 클로저는 “함수가 선언된 렉시컬 환경”이 키워드가 되는 것입니다. [1] 💡 **..

Study/JavaScript 2023.03.27