closure
[JavaScript] 클로저(Closure)
[JavaScript] 클로저(Closure)
2019.11.24정의 함수와 그 함수가 정의된 렉시컬 환경의 조합이다. 렉시컬 환경? 렉시컬 환경의 의미는 어휘적 범위를 정해주는 렉시컬 스코프를 통해 지정된 사용 가능한 변수들을 포함한 환경을 의미한다. 즉 렉시컬 스코프 안에 있는 변수들을 접근할 수 있는 환경이다. 사용 예시 예시 1 일반적으로 클로져는 함수안의 함수 형태로 정의된다. let obj = function(){ let i = 0; return { setI(k){ i = k; }, getI(){ return i; } } // 호출시 얻는 함수들이 외부 함수의 변수인 i에 대한 메모리를 가지고 있는다. } let x = obj(); x.setI(2); console.log(x.getI()); // 2 x.setI(4); console.log(x.getI()..
[JavaScript] JavaScript와 Functional Programming 그리고 Closure
[JavaScript] JavaScript와 Functional Programming 그리고 Closure
2019.08.10Frontend Master의 'JavaScript: The Hard Parts'를 보고 정리한 글의 일부입니다. Functional Programming 이전까지 가장 유명한 코딩 패러다임은 OOP(Object Oriented Programming)이었다. JavaScript에서 Function의 종류는 다음과 같다. Pure Functions 전역 변수를 건드리지 말아야한다, parameter는 reference로 넘어가기 때문에 mutate되지 않는다. High Order Functions reusability를 위해 쓰이는 함수로, 내가 parameter를 집어 넣었을 때 비로소 완성되는 함수이다. Callbacks and Higher Order Functions Higher-order funct..