본문으로 바로가기




재귀 알고리즘 구현하기

배열을 재귀적으로 탐색하고 배열 문자열을 역순으로 반환하는 함수를 구현하고자 하는 경우에는 재귀적으로 함수 리터럴을 사용할 수 있습니다.

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