더북(TheBook)

3.2.1 기본값은 표현식이다

매개변수 기본값은 표현식이다. 리터럴 값일 필요는 없다. 기본값은 함수를 호출할 수도 있다. 기본 표현식은 함수가 정의될 때가 아니라 함수가 호출될 때 평가되며 함수에 대한 특정 호출에 기본값이 필요한 경우에만 평가된다.

예를 들어 각 애니메이션 유형에 대해 다른 지속 시간을 사용하고 특정 유형에 대한 기본 지속 시간을 제공하는 함수가 있다고 가정한다. 다음과 같이 애니메이션 함수를 작성할 수 있다.

function animate(type, duration = getDefaultDuration(type)) {
    // 작업을 한다.
}

getDefaultDuration은 필요한 경우가 아니면 호출되지 않는다. 거의 정확히 다음과 같이 처리된다.

function animate(type, duration) {
    if (duration === undefined) {
        duration = getDefaultDuration(type);
    }
    // 작업을 한다.
}

주된 차이점은 범위와 관련이 있으며 잠시 후에 설명하겠다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.