ネストされた関数
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- 外側の関数:
originalPriceとdiscountPercentageという2つの引数を取る、calculateDiscountという名前の関数を定義します。
- 内側の関数:
- 外側の関数の中で、
calculateDiscountAmountという別の関数を定義します。これがネストされた関数です。これはpriceとdiscountという2つの引数を取ります(originalPriceやdiscountPercentageに直接アクセスしていないことに注目してください)。
- 外側の関数の中で、
- 出力:この関数は最終的な価格を返します。この場合は80(20%の割引を適用した後)になります。
チャレンジ
簡単あなたのタスクは、calculateTaxAmount という名前の入れ子になった関数(ネストされた関数)を作成することです。この関数は、外部関数 calculateWithTax から price と taxRate を受け取り、税額を計算してそれを返す必要があります。(税額は価格に税率を掛けたものです)
最終的に、外部関数は元の価格に税額を加算することで、最終価格(税込)を計算して返し、最終価格を戻り値としてください。
自分で試してみよう
function calculateWithTax(product) {
let price = product.price;
let taxRate = product.taxRate;
// ここにコードを記述してください
}
JavaScriptの関数宣言のすべてのレッスン
1コース紹介
このコースで学べること