탱구탱구 개발자 일기

자바스크립트에선 다양한 방식으로 함수를 정의할 수 있다.

  1. 함수 정의 방법
    • 함수 선언문 정의
    • 함수 리터럴 정의
    • Function() 생성자 정의
    • Arrow Function 표현식 정의(ES6 이후)

 

[함수 선언문 정의]

function sum(a, b) {
    return a + b;
}

[함수 리터럴 정의]

let sum = function (a, b) {
    return a + b;
}

[Function() 생성자 정의]

// Function() 생성자 정의
let sum = new Function('a, b', 'return a + b');

[Arrow Function 표현식 정의]

let sum = (a, b) => a + b;

 

2. 중첩 함수

  • 특정 함수 내부에 선언된 함수
  • 지연함수, 내부(inner)함수라고 부름
  • 중첩 함수의 참조는 그 함수를 둘러싼 외부 함수의 지역 변수에 저장되며 외부 함수 바깥에서는 사용 불가
  • 자신을 둘러싼 외부 함수의 인수와 지역 변수에 접근할 수 있다. => Closer의 핵심 구성요소가 됨
  • 아래 코드에서 sum 함수는 외부 함수 calc의 arg인 a를 사용할 수 있다. 
// 중첩 함수
function calc(a) {
    let b = 10;
    let c = sum();
    return c;

    function sum() {
        return a + b;
    }
}
let n = calc(10);
console.log(n);
//20

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band
loading