Menu
Coddy logo textTech

ネストされた関数

Coddyの「JavaScriptの関数宣言」コースのレッスン 7/14。

入れ子になった関数(ネストされた関数)は、ヒーローと相棒のようなものです。これらは、自身の内部で他の関数を作成して使用できる強力な関数です。

ネストされた関数とは、別の関数の中で定義された関数のことです。内側の関数は外側の関数の変数やパラメータにアクセスでき、外側の関数の中にローカルスコープを作成します。

特定のタスクで助けを必要としているメイン関数(ヒーロー)を想像してみてください。外部の関数に頼る代わりに、その特定のタスクを処理するために自身の内部でヘルパー関数(相棒)を作成できます。このヘルパー関数は、メイン関数からのみアクセスして使用できます。例:

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); // Output: 80
  • 外側の関数:
    • originalPricediscountPercentageという2つの引数を取る、calculateDiscountという名前の関数を定義します。
  • 内側の関数:
    • 外側の関数の中で、calculateDiscountAmountという別の関数を定義します。これがネストされた関数です。これはpricediscountという2つの引数を取ります(originalPricediscountPercentageに直接アクセスしていないことに注目してください)。
  • 出力:この関数は最終的な価格を返します。この場合は80(20%の割引を適用した後)になります。
challenge icon

チャレンジ

簡単

あなたのタスクは、calculateTaxAmount という名前の入れ子になった関数(ネストされた関数)を作成することです。この関数は、外部関数 calculateWithTax から pricetaxRate を受け取り、税額を計算してそれを返す必要があります。(税額は価格に税率を掛けたものです)

最終的に、外部関数は元の価格に税額を加算することで、最終価格(税込)を計算して返し、最終価格を戻り値としてください。

自分で試してみよう

function calculateWithTax(product) {
    let price = product.price;
    let taxRate = product.taxRate;
   // ここにコードを記述してください
}

JavaScriptの関数宣言のすべてのレッスン