Função Aninhada
Lição 7 de 14 do curso Declaração de Funções em JavaScript da Coddy.
Funções aninhadas são como super-heróis com ajudantes – são funções poderosas que podem criar e usar outras funções dentro delas.
Uma função aninhada é uma função definida dentro de outra função. A função interna tem acesso às variáveis e parâmetros da função externa, criando um escopo local dentro da função externa.
Imagine que você tem uma função principal (o super-herói) que precisa de ajuda com uma tarefa específica. Em vez de depender de uma função externa, ela pode criar uma função auxiliar (o ajudante) dentro de si mesma para lidar com essa tarefa específica. Esta função auxiliar só pode ser acessada e usada pela função principal. Por exemplo:
function calculateDiscount(originalPrice, discountPercentage) {
function calculateDiscountAmount(price, discount) {
return price * discount; // Calcula o valor do desconto (função interna)
}
const discountAmount = calculateDiscountAmount(originalPrice, discountPercentage / 100);
const finalPrice = originalPrice - discountAmount;
return finalPrice;
}
const discountedPrice = calculateDiscount(100, 20);
console.log(discountedPrice); // Saída: 80- Função Externa:
- Definimos uma função chamada
calculateDiscountque recebe dois argumentos:originalPriceediscountPercentage.
- Definimos uma função chamada
- Função Interna:
- Dentro da função externa, definimos outra função chamada
calculateDiscountAmount. Esta é a função aninhada. Ela recebe dois argumentos:priceediscount(note que ela não tem acesso direto aoriginalPriceoudiscountPercentage).
- Dentro da função externa, definimos outra função chamada
- Saída: A função retorna o preço final, que é 80 (após aplicar o desconto de 20%).
Desafio
FácilSua tarefa é criar uma função aninhada chamada calculateTaxAmount que deve receber o price e o taxRate da função externa calculateWithTax, calcular o valor do imposto e retorná-lo. (O valor do imposto é o preço multiplicado pela taxa de imposto)
Finalmente, a função externa deve calcular e retornar o preço final (incluindo o imposto) somando o valor do imposto ao preço original e retornar o preço final.
Experimente você mesmo
function calculateWithTax(product) {
let price = product.price;
let taxRate = product.taxRate;
// escreva o código aqui
}
Todas as lições de Declaração de Funções em JavaScript
1Introdução ao Curso
O que você vai aprender?3Formas de Declaração de Função
Função BásicaFunção AninhadaRetornando uma FunçãoFunction ExpressionsArrow FunctionFunction Constructor