https://jjaong34.tistory.com/25
자바스크립트 함수 범위와 표현식
지난시간에는 함수 기본을 공부했었다. https://jjaong34.tistory.com/24 자바스크립트 함수 함수 함수는 JavaScript에서 기본 구성 요소 중 하나입니다. JavaScript의 함수는 작업을 수행하거나 값을 계산하는
jjaong34.tistory.com
위 링크는 저번 포스팅
계속 함수를 공부하고 있지만 함수는 정말 배울게 많다
이번엔 고차 함수, 반환 함수, 팩토리 함수에 대해 알아보았다.
고차 함수
고차 함수는 함수를 인자로 받거나 또는 함수를 반환함으로써 작동 하는 함수이다.
아주아주 쉬운 예시를 들어보면
function dice(){
const di = Math.floor(Math.random()*6) + 1;
console.log(di);
}
주사위를 굴리는 함수가 있다.
함수를 2번 실행하고 싶다?
function callFn(funct){
funct();
funct();
}
일단 함수를 매개변수로 받아서 2번 실행하는 함수를 만든다.
그 후에 함수를 실행할 때
인수로 주사위를 굴리는 함수를 넣어주면 된다.
callFn(dice());
반환 함수
반환 함수는 반환값에 함수를 넣는 것이다.
아주 쉬운 예시를 들어보면
function betweenNum1(num){
return num >= 1 && num <= 10
}
function betweenNum2(num){
return num >=2 && num <= 20
}
숫자가 사이에 있는지 체크하는 함수가 있다.
그런데 이렇게 범위를 계속 수동으로 설정해줘야 할까?
방법은 반환 함수를 이용하는 것이다
function betweenNum(min, max){
return function(num){
return num >= min && num <=max;
}
}
일단 범위를 지정하는 함수를 하나 만들고
그 안의 반환값으로 숫자를 받는 함수를 만든다.
이제 그 함수를 반환 해주었기 때문에 변수에 저장을 할 수 있다.
betweenNum(1, 100);
const test = function(num){
return num >= 1 && num <=100;
}
betweenNum 에 min 값으로 1과 100이 입력됏다고 하고
그 리턴 값을 test라는 변수에 넣어준다.
이제 그것을 목적에 따라 사용할 수 있다.
이것은 팩토리 함수를 만드는 패턴이다
공장 함수 (Factory function)
어떤 함수가 객체를 반환할 때, 이 함수를 공장 함수 혹은 팩토리 함수라고 부른다. 객체를 찍어내는 형태이기 때문에 붙은 이름이다. 다른 함수처럼 매개변수를 활용하여 객체를 변경 후 반환할 수 있다
다시 본론으로 돌아가서
예를들어 어린이는 1~ 13세다 청소년은 14~19 어른은 20~ 라는 범위를
각각 변수에 저장해서 활용하면 편리하다.
const child = betweenNum(1, 13);
const teenager = betweenNum(14, 19);
const adult = betweenNum(20, 120);
이런 식으로 변수에 저장 후
child(10);
teenager(20);
adult(30);
이렇게 활용이 가능하다.
'javascript' 카테고리의 다른 글
자바스크립트 this (0) | 2023.03.22 |
---|---|
자바스크립트 메소드 (0) | 2023.03.21 |
자바스크립트 함수 범위와 표현식 (0) | 2023.03.19 |
자바스크립트 함수 (0) | 2023.03.17 |
자바스크립트 반복문 (0) | 2023.03.15 |