JavaScript 에서는 함수를 생성하는 방법이 크게 3가지가 있다.

  1. function
    function showMessage(str){
     alert(str);
    }
    

    이 방법은 정적인 함수가 생성되어서 페이지가 로드되었을 때는 이미 고정된 기능을 수행할 수 있다. 따라서, 같은 페이지에서 function을 통해 생성되었을 경우, 어디서나 호출이 가능하다.

  2. Function
    var makeFunction = new Function("param1","param2",...,"formula");
    

    또는

    var param = "str";
    var formula = "alert(str);";
    var showMessage = Function(param, formula);
    

    Function 으로 함수를 생성하면 string을 활용하여 함수를 선언할 수 있다는 독특한(?) 점이 있다.

  3. 함수 리터럴 방식
    var showMessage = function(str){
     alert(str);
    }
    

    function 방식과 다른 점은 showMessage 라는 변수에 저장했다는 것이다.
    동적으로 함수가 선언되는 것이기 때문에, 실행되는 매 순간마다 showMessage의 상태에 따라 함수 내용을 다시 확인한다.
    (함수가 아니게 될 수도 있다. 극혐 )

  4. 애로우 방식은 생략한다.

주의사항

1번 function 방법으로 생성할 경우만 정적 생성이기 때문에 어디서 선언해도 페이지 로딩 후 실행이 가능하지만,
2번과 3번 방법의 경우 동적이기 때문에 함수의 선언이 반드시 실행보다 먼저 기술되어야 한다.