2021년 7월 1일에 작성된 문서입니다.
javascript 배운 내용을 정리했습니다.
함수를 리턴하는 함수가 클로저의 형태를 만듦
const adder = x => y => x + y;
adder(5)(7); // 12
typeof adder(5); // 'function'
// adder(5) 의 리턴값이 곧 함수의 형태
adder(5); // y => x + y;
divMaker
함수는 'div'라는 문자열을 tag
라는 변수에 담고 있음anchorMaker
함수는 'a'라는 문자열을 tag
에 담고 있다. makeCounter
함수는 increase
, decrease
, getValue
메소드를 포함한 객체 하나를 리턴. counter1
은 객체.value
는 직접 수정이 불가능. value
값을 간접 조작은 가능.왜 이렇게 하는 것일까요? 만일 스코프로 value 값을 감싸지 않았더라면, value 값은 전역 변수여야만 했을 것입니다. 하지만 makeCounter라는 함수가 value 값을 보존하고 있기 때문에, 전역 변수로 따로 만들 필요가 없습니다.
여러개 counter를 만들 수 있다.
getValue
메소드는 외부 함수에 선언된 value 값을 리턴하는 함수.
makeCounter
에 의해 리턴된 객체는, makeCounter
를 실행할 때에 선언되는 value
값을 각자 독립적으로 가짐.
counter1
에서의 value
와 counter2
에서의 value
는 서로에게 영향을 끼치지 않고, 각각의 값을 보존
Written with StackEdit.