Menu
Coddy logo textTech

중첩 함수

Coddy의 JavaScript의 함수 선언 코스 레슨 — 14개 중 7번째.

중첩 함수는 사이드킥을 동반한 슈퍼히어로와 같습니다. 이들은 내부에 다른 함수를 생성하고 사용할 수 있는 강력한 함수입니다.

중첩 함수는 다른 함수 내부에서 정의된 함수입니다. 내부 함수는 외부 함수의 변수와 매개변수에 접근할 수 있어, 외부 함수 내에 지역 스코프를 생성합니다.

특정 작업에 도움이 필요한 메인 함수(슈퍼히어로)가 있다고 상상해 보세요. 외부 함수에 의존하는 대신, 그 특정 작업을 처리하기 위해 내부에 헬퍼 함수(사이드킥)를 만들 수 있습니다. 이 헬퍼 함수는 메인 함수에서만 접근하고 사용할 수 있습니다. 예를 들어:

function calculateDiscount(originalPrice, discountPercentage) {
  	function calculateDiscountAmount(price, discount) {
    	return price * discount; // 할인 금액 계산 (내부 함수)
  	}

  	const discountAmount = calculateDiscountAmount(originalPrice, discountPercentage / 100);
  	const finalPrice = originalPrice - discountAmount;
  	return finalPrice;
}

const discountedPrice = calculateDiscount(100, 20);
console.log(discountedPrice); // 출력: 80
  • 외부 함수:
    • 두 개의 인자 originalPricediscountPercentage를 받는 calculateDiscount라는 이름의 함수를 정의합니다.
  • 내부 함수:
    • 외부 함수 내부에서 calculateDiscountAmount라는 이름의 또 다른 함수를 정의합니다. 이것이 중첩 함수입니다. 이 함수는 pricediscount라는 두 개의 인자를 받습니다 (originalPricediscountPercentage에 직접 접근하지 않는다는 점에 유의하세요).
  • 출력: 함수는 최종 가격인 80을 반환합니다 (20% 할인을 적용한 후).
challenge icon

챌린지

쉬움

여러분의 작업은 calculateTaxAmount라는 중첩 함수를 만드는 것입니다. 이 함수는 외부 함수인 calculateWithTax로부터 pricetaxRate를 전달받아 세액을 계산하고 반환해야 합니다. (세액은 가격에 세율을 곱한 값입니다.)

마지막으로, 외부 함수는 원래 가격에 세액을 더하여 최종 가격(세금 포함)을 계산하고 최종 가격을 반환해야 합니다.

직접 해보기

function calculateWithTax(product) {
    let price = product.price;
    let taxRate = product.taxRate;
   // 여기에 코드를 작성하세요
}

JavaScript의 함수 선언의 모든 레슨