함수도 하나의 자료이기 때문에 숫자나 문자열처럼 취급하게 된다.
함수를 만드는 방법은 총 두가지가 있는데..
첫벗째는?
1.이름있는함수를 만드는 방법 (선언적 함수)
function name() {}
두번째는?
2.이름 없는 함수를 만드는 방법 (익명함수)
function () {}
익명함수는 이름이 없기때문에 호출할수없어서 변수 등에 넣어서 활용한다.
그래서 이러한 형태로 사용하면 이름을 부여할수있다.
간단하게 테스트 A와 B라고 하겠다.
참고로, 유명함수와 익명함수의 차이점은
유명함수는 스크립트 태그 부분을 읽을 때 먼저 실행이 된다.
반면, 익명함수는 ... 예시부터 보겠다.
위 예시와 같이 위에서 아래로 쭉 실행되기 때문에 마지막에 있는 줄이
테스트라는 변수를 덮어 씌워서 "D입니다" 라는 걸 출력한게된다.
선언함수도 비슷하다.
라고 선언하면 실행했을때, D를 출력하게된다.
근런데!
이제 두 녀석이 섞여있을때가 문제가 되는데, 예를 들어서 var test에 익명함수를 넣어서 alert B입니다. 라고 실행을 하고 요렇게 두개만 남겨보도록 하겠다.
선언적함수는 이 스크립트 태그를 읽을때 가장 먼저 실행이 된다.
따라서 A가 먼저 테스트라는 이름을 덮어 씌우게 되고
그 다음에 테스트B입니다 라는걸 테스트라는 이름에 덮어 씌우게 된다.
따라서 실행하면 "B입니다"를 출력한다!