[JS] 자바스크립트 함수 정의 방법 3가지와 익명함수 기명함수 뜻

    1. 함수 선언문

    function add(x, y) {
        return x, y;
    }

    함수 선운문 방식에서는 반드신 함수명이 정의되어 있어야 한다.

     

     

    2. 함수 표현식

    var add = function(x, y) {
        return x + y;
    }
    
    console.log(add(3, 4));

    자바스크립트에서는 함수도 하나의 값처럼 취급되기 때문에 함수도 숫자나 문자열 처럼 변수에 할당하는 것이 가능하다.

    add가 실제로 참조하는 함수에 함수명이 없어 익명 함수 라고 한다. 만약에 함수명이 있으면 기명 함수라고 하며 외부에서는 참조가 불가능 하다.

    var add = function sum(x, y) {
        return x + y;
    }
    
    console.log(add(3, 4)); //7
    console.log(sum(3, 4)); //ReferenceError: sum is not defined

    sum() 함수는 외부에서 참조가 불가능 하고 sum()은 오로지 자기 함수 안에서만 실행이 가능하다.

     

    3. Function() 생성자 함수

    new Function (arg1, arg2, ...argN, functionBody);
    
    var add = new Function('x', 'y', 'return x + y');
    console.log(add(3, 4)); //7

    자바스크립트 함수도 Function() 이라는 기본 내장 생성자 함수로부터 생성된 객체라고 볼 수 있다. 

    new Function에서 arg는 함수의 매개변수 이고 functionBody는 함수고 호출될 때 실행될 코드를 의미한다.

    실제로 많이 사용 되지는 않으므로 알아두기만 하면 된다.

    댓글

    Designed by JB FACTORY