함수편
====================================
함수 종류
1 내장함수 (중첩함수)
2콜백함수(고차함수 (higher order function))
3재귀함수
내장함수
function outter(){
var t1 = 1;
var t2 = 2;
function inner(){ // 클로져 발생
console.log(t1);
console.log(t2);
}
inner();
}
outter();
*클로져는 내부함수가 외부함수를 접근항수있는,,,
콜백함수
(파라미터안에 함수가 들어가는것)
var a = [1,2];
var result = '';
a.forEach(function(element,index){ //이함수가 콜백함수
result = index , element;
});
console.log(result);
콜백함수 , 즉 함수를 재 호출하는 과정 그자체
재귀함수
(함수의 리턴값으로 함수를 반환하는것)
function a(num){
if(num <= 1){
return 1;
} else{
return num a(num 1);
}
}
a(3);
이걸 풀어서 보면
function a((3-1)-1){
if(num <= 1){
return 1;
} else{
return (3-1-1) a((3-1) - 1);
//3 (3-1)(3-1)-11
}
}
a(3);
저 계산은 계속 쌓이는거고
num 값이 계속 변하는거고
num값이 변할때마다 값이 덮어쓰기가 되는거다.