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
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
printMessage()
print
Por outro lado, se atribuirmos a variável printMessage
print
print(); // Bom dia
print(); // Boa tarde
const printMessage = print;
printMessage(); // Boa tarde
printMessage(); // Boa tarde