Menu
CoddyTech

嵌套函数

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); // 输出:80
  • 外部函数:
    • 我们定义了一个名为 calculateDiscount 的函数,它接受两个参数:originalPrice 和 discountPercentage。
  • 内部函数:
    • 在外部函数内部,我们定义了另一个名为 calculateDiscountAmount 的函数。这就是嵌套函数。它接受两个参数:price 和 discount(注意,它不能直接访问 originalPrice 或 discountPercentage)。
  • 输出:函数会返回最终价格,也就是应用 20% 折扣后的 80。
challenge icon

挑战

简单

你的任务是创建一个名为 calculateTaxAmount 的嵌套函数,它应从外层函数 calculateWithTax 中获取 price 和 taxRate,计算税额并返回它。(税额等于价格乘以税率)

最后,外层函数应将税额加到原价上,计算并返回最终价格(含税)。

亲手试试

function calculateWithTax(product) {
    let price = product.price;
    let taxRate = product.taxRate;
   // 在这里编写代码
}

JavaScript 函数声明中的所有课

自己练习: JavaScript 在线编译器