9월 11일 (토) 스코프와 클로저 재정리
스코프를 이용해 값을 보다 안전하게 다룰 수 있다
클로저를 활용해 재사용성을 높일 수있으며, 캡슐화를 통해 의도되지 않은 변경과 오류로부터 값을 보호 할 수 있다
만약 스코프와 클로저라는게 없다면 ?
변수가 어디서부터 변경됐는지 왜 변경되는지 통제가 안될 듯 하다
전역변수를 줄이고 통제된 스코프를 통해 클로저를 활용이 있기에 우리가 코드를 안전하게 생각외의 특이사항 없이 짤 수 있는거 같다
먼가 아직 클로저 내용안에 이전에 배운 side effect 외 캡슐화 등 추가적인 부분들을 합쳐서 이해하려고 하니 낯선 느낌이 들지만 github TIL 스코프, 클로저 정리 하면서 한번 더 읽어보자
클로저는 스코프를 이용해, 변수의 접근 범위를 닫는데에 있다
선언할 당시의 환경을 기억했다가 나중에 호출될시 원래의 환경에 따라 호출되는 함수
스코프는 변수에 접근범위
클로저는 함수를 리턴하는 함수, 함수와 함수가 선언된 형태
고차함수는 함수를 인자(argument)로 받을 수 있고, 함수의 형태로 리턴할 수 있는 함수
그럼 클로저와 고차함수의 차이는 무엇일까
클로저 역시 함수지만, 함수가 생성될 때 state를 점유하고 있다면 우리는 그것을 클로저라고 한다
Closures are also functions. But when a function captures state upon its creation, we call it a closure.
즉, 클로저는 함수의 상태라고 볼 수 있고, 이것을 이용하는게 고차 함수라고 볼 수 있는거 같다
추가적으로 side effect
와 캡슐화
, 추상화
, 상속
, 다형성
에 대하여 재정리 해보자 (객체지향 파트 재정리)