Menu
Coddy logo textTech

Вложенная функция

Урок 7 из 14 курса Объявление функций в JavaScript на Coddy.

Вложенные функции подобны супергероям с помощниками — это мощные функции, которые могут создавать и использовать другие функции внутри себя.

Вложенная функция — это функция, определенная внутри другой функции. Внутренняя функция имеет доступ к переменным и параметрам внешней функции, создавая локальную область видимости внутри внешней функции.

Представьте, что у вас есть основная функция (супергерой), которой нужна помощь в выполнении конкретной задачи. Вместо того чтобы полагаться на внешнюю функцию, она может создать внутри себя вспомогательную функцию (помощника) для решения этой задачи. Доступ к этой вспомогательной функции может получить и использовать только основная функция. Например:

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).
  • Результат: Функция возвращает итоговую цену, которая равна 80 (после применения 20% скидки).
challenge icon

Задание

Легко

Ваша задача — создать вложенную функцию с именем calculateTaxAmount, которая должна принимать price и taxRate из внешней функции calculateWithTax, вычислять сумму налога и возвращать её. (Сумма налога — это цена, умноженная на налоговую ставку)

В завершение, внешняя функция должна вычислить и вернуть итоговую цену (включая налог), прибавив сумму налога к исходной цене, и вернуть итоговую цену.

Попробуйте сами

function calculateWithTax(product) {
    let price = product.price;
    let taxRate = product.taxRate;
   // напишите код здесь
}

Все уроки раздела Объявление функций в JavaScript