O que eu quis dizer na explicação é, uma função funciona na seguinte estrutura:
function nomeDaFuncao(parametro1, parametro2, parametroN...) {
//corpo da função
}
Uma função pode ter nenhum, um ou vários parâmetros.
Um parâmetro é um valor que ela defini que seja passado quando for chamada.
Então em uma função qualquer:
function mostra(frase) {
document.write(frase);
}
Quem chamar a função mostra, precisa passar como parâmetro um valor para ela, que ela usará com uma referência chamada frase.
O valor que será passado fica totalmente ao cargo de quem está realizando a chamada.
Vamos supor que uma outra função xyz() faz a chamada para mostra, ela terá que fazer algo assim:
function xyz() {
mostra('Texto que eu quero exibir de exemplo');
}
OU
function xyz() {
var texto = 'Texto que eu quero exibir de exemplo';
mostra(texto);
}
Não é uma questão de otimização entende, para chamar mostra, é necessário fornecer o valor que ela espera por parâmetro. Se o valor vai ser passado direto na chamada como no exemplo 1, ou se vai ser passado uma outra variável contendo o valor, que dentro de mostra será tratada como frase, como no exemplo 2, não importa.
O que importa, é que esse valor teve que ser passado, para que mostra pudesse fazer o que ela precisa fazer.
Consegui explicar melhor?
Abraço.