Substituindo uma função JavaScript ao fazer referência à original

Eu tenho uma funçãoa(), que desejo substituir, mas também tenho o originala() ser executado em uma ordem, dependendo do contexto. Por exemplo, às vezes, quando estou gerando uma página, desejo substituir dessa forma:

function a() {
    new_code();
    original_a();
}

e às vezes assim:

function a() {
    original_a();
    other_new_code();
}

Como faço para conseguir issooriginal_a() de dentro do over-ridinga()? Isso é possível?

Por favor, não sugira alternativas para ultrapassar dessa maneira, eu sei de muitas. Estou perguntando sobre esse caminho especificamente.

questionAnswers(11)

yourAnswerToTheQuestion