Sobrescrevendo Comportamentos em Funções - JavaScript

As funções têm a capacidade de sobrescrever seus comportamentos. Isso pode ser feito atribuindo uma função anônima a uma variável com o mesmo nome da função a ser sobrescrita:

function print() {
    console.log("Bom dia");
    print = function() {
        console.log("Boa tarde");
    };
}

print(); // Bom dia
print(); // Boa tarde

No primeiro acionamento da função, ela executa o bloco principal de operações, neste caso, exibindo a mensagem "Bom dia". Neste primeiro acionamento, a função print também é sobrescrita. Assim, em todos os acionamentos seguintes, será executada a versão sobrescrita, que exibirá "Boa tarde".

No entanto, é importante ter em mente alguns detalhes ao sobrescrever funções. Por exemplo, vamos atribuir uma referência à função a uma variável e, através dessa variável, chamá-la:

function print() {
    console.log("Bom dia");
    print = function() {
        console.log("Boa tarde");
    };
}

// Atribuindo referência à função antes de ser sobrescrita
const printMessage = print;

print(); // Bom dia
print(); // Boa tarde
printMessage(); // Bom dia
printMessage(); // Bom dia

Neste exemplo, a variável printMessage recebe uma referência à função print antes de ser sobrescrita. Portanto, ao chamarmos printMessage(), é executada a versão não sobrescrita da função print.

Por outro lado, se atribuirmos a variável printMessage após a sobrescrita da função print:

print(); // Bom dia
print(); // Boa tarde
const printMessage = print;

printMessage(); // Boa tarde
printMessage(); // Boa tarde
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com