금융에 대한 모든 것

자바스크립트에서는 함수를 정의하는 방법이 3가지가 있습니다.

 

함수 선언문

함수를 선언하는 가장 기본적인 방법입니다.

 

기본 사용법

function 함수이름(매개변수) {
    실행문;
    return 리턴값;
}

 C언어와 'function'이라는 키워드로 함수를 선언할 수 있습니다. 다른 점은 매개변수와 반환 값의 타입을 적어주지 않아도 돼서 여러 가지 타입이 들어갈 수 있다는 점입니다.

 

예시

// 함수 선언
function plus(a, b) {
    return a + b;
} 
// 함수 호출
plus(1, 2);

 

함수 표현식

 다음과 같이 변수를 생성하여 함수 대입한 것 같은 모양으로 함수를 정의할 수 있습니다.

 

기본 사용법

변수 = function(매개변수) {
    실행문;
    return 리턴값;
}

정의한 함수를 변수에 대입하여 사용하는 방식으로 가장 많이 쓰이는 함수 선언 방식입니다.

 

예시

// 함수 선언
var plus = function(a, b) {
    return a + b;
};

// 함수 호출
plus(1, 2); 

 여기서 특이한 점은 함수를 정의해서 그 함수를 변수에 대입할 수 있다는 것입니다. 자바스크립트에서는 다른 언어와는 다르게 함수를 객체로 취급하기 때문에 저런 행위가 가능합니다. 변수에는 함수의 정보가 저장되어 있는 메모리 주소가 들어가게 되고 함수를 호출할 때는 plus변수에 있는 주소를 참조하여 호출하게 되는 것입니다. 

 

 이 때 function 부분은 이름이 없는 함수라고 하여 익명 함수라고 합니다. 익명 함수를 이용하여 함수 객체를 만들고 변수에 대입하여 함수명을 plus으로 사용하는 것입니다. 그리고 주의할 점은 함수 선언식보다 그 함수의 호출이 먼저 일어나면 동작하지 않는 다는 것입니다.

var plus = function(a, b) {
    return function() {
        alert(a + b);
    };
};

// 함수를 반환하여 변수에 대입
var alertResult = plus(1, 2);
alertResult();

함수가 객체이므로 이런 식으로 함수 자체를 반환할 수도 있습니다.

 

생성자 함수 이용

자바스크립트에서 지원하는 Function이라는 생성자 함수를 이용하여 함수 객체를 만드는 방법입니다.

 

예시

// 매개변수,  함수 내부 로직
var func = new Function('string', 'return string');
                      
// 함수 호출
func(string);

생성자의 첫 번째 인자로 함수에 들어갈 매개변수를 적고 두 번째 인자로 함수가 실행할 문장들을 적습니다. 이렇게 들어가는 인자들은 다른 변수들과 구분하기 위해 작은따옴표로 감싸줍니다.

 


반응형