Cadeia de métodos de alias em JavaScript?
-
26-09-2019 - |
Pergunta
No JavaScript, como você poderia criar uma nova função com o mesmo nome que uma função existente, enquanto também preservava a função original para que ela pudesse ser chamada de dentro da nova?
Solução
Você pode passar a função original em uma função anônima que retorna uma função de substituição que tem acesso à função original.
Por exemplo
parseInt = (function parseInt(original) {
return function (x) {
console.log("original would've returned " + original(x));
// just random 'new' functionality
return (x | 0) * 2;
};
}(parseInt));
Exemplo de saída:
>> parseInt(10);
<< original would've returned 10
<< 20
Outras dicas
Você quer implementar embrulho de função, verifique os seguintes artigos:
Você pode simplesmente atribuir a função antiga a uma variável com um nome diferente:
var old_parseInt = parseInt;
function parseInt(s) {
return old_parseInt(s) + 1;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow