재귀 알고리즘 구현하기
배열을 재귀적으로 탐색하고 배열 문자열을 역순으로 반환하는 함수를 구현하고자 하는 경우에는 재귀적으로 함수 리터럴을 사용할 수 있습니다.
javascript
var reverseArray = function (x, index, str) {
return index == 0 ? str : reverseArray(x, --index, (str += x[index] + " "));
};
var arr = ['apple', 'orange', 'peach', 'lime'];
var str = reverseArray(arr, arr.length, "");
console.log(str);
상태를 기억하는 함수 작성하기
전역 변수를 사용하지 않고, 함수를 호출할 때마다 같은 데이터를 재전송하지 않으며, 정적 데이터를 기억(저장)할 수 있는 함수를 작성하고자 싶은 경우가 있을 수 있습니다.
이런 경우에는 한 개 이상의 인수를 받는 외부 함수를 만들고 그 외부 함수 내부(안)에 한 개 이상의 인수를 받는 함수를 작성하되 내부 함수의 인자와 부모(외부) 함수의 인자를 모두 사용하면 됩니다.
외부 함수는 내부 함수를 반환하고 이 값을 변수에 할당하도록 합니다.
function greeting(greet) {
function addName(name) {
return greet + ' ' + name;
}
return addName;
}
var daytimeGreeting = greeting('Good Day to you!');
var nightGreeting = greeting('Good Evening');
// console.log(name);
console.log(daytimeGreeting(name));
console.log(nightGreeting('jaehee'));
function outer(x) {
return function (y) {
return x * y;
}
}
var multiFour = outer(4);
console.log(multiFour(3));
var result2 = multiFour(5);
console.log(result2);
Jaehee's WebClub
'JavaScript > JS 활용 & etc..' 카테고리의 다른 글
디바운스(Debounce)와 스로틀(Throttle ) 그리고 차이점 (19) | 2018.12.17 |
---|---|
trim 메서드 : 문자열 양끝 공백 제거하기 (0) | 2017.01.24 |
Search String(문자열 검색하기) (0) | 2017.01.23 |
splice 와 indexOf 를 활용 예제 (0) | 2017.01.23 |
자바스크립트의 객체 상수 (0) | 2016.10.30 |