Вложенная функция
Урок 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% скидки).
Задание
ЛегкоВаша задача — создать вложенную функцию с именем calculateTaxAmount, которая должна принимать price и taxRate из внешней функции calculateWithTax, вычислять сумму налога и возвращать её. (Сумма налога — это цена, умноженная на налоговую ставку)
В завершение, внешняя функция должна вычислить и вернуть итоговую цену (включая налог), прибавив сумму налога к исходной цене, и вернуть итоговую цену.
Попробуйте сами
function calculateWithTax(product) {
let price = product.price;
let taxRate = product.taxRate;
// напишите код здесь
}
Все уроки раздела Объявление функций в JavaScript
1Введение в курс
Чему вы научитесь?3Способы объявления функций
Базовая функцияВложенная функцияВозврат функцииFunction ExpressionsArrow FunctionКонструктор Function