Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Dúvida sobre funções em JS


Anderson Ferreira

Pergunta

Olá galera,

Estou tentando aprender JavaScript, e comecei a ler uns tutorial aq. Mas surgiu uma dúvida, quando cheguei na parte de funções no JS.

Olhem este exemplo abaixo:

<HTML>

<HEAD>

&lt;script LANGUAGE="javascript">

function controle(form1) {

var test = document.form1.input.value;

alert("Escreveste: " + test);

}

</SCRIPT>

</HEAD>

<BODY>

<FORM NAME="form1">

<INPUT TYPE="text" NAME="input" VALUE=""><BR>

<INPUT TYPE="button" NAME="botao" VALUE="Controlar" onClick="controle(form1)">

</FORM>

</BODY>

</HTML>

O problema é na função controle. Dentro dela tem uma propriedade chamada form1. Ai eu qria saber praq serve esta propriedade.

Eu apaguei ela, nos dois lugares destacados de vermelho, e mesmo assim a função continuou a funcionar. Então praq serve esta propriedade? Só pra decorar, KKKKKKK

Obrigado,

Anderson Ferreira

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Esse exemplo realmente não foi dos melhores. Aquele "form1" é um parâmetro que a função recebe (no caso, um elemento HTML). E no evento onclick é chamada a função passando o parâmetro form1 (argumento da função) com o valor de form1 (formulário).

Na verdade o parâmetro não é nem utilizado, seria se trocasse:

var test = document.form1.input.value;
Por:
var test = form1.input.value;

No segundo caso o "form1" se refere ao parâmetro (e acaba sendo o document.form1, pois o parâmetro passado tinha esse valor). Já no primeiro, o "form1" refere-se diretamente ao elemento HTML cujo atributo name é form1.

Mas esse tipo de código deve ser evitado (não falo da utilização de duas variáveis com mesmo nome, isso pode ocorrer desde que se entenda o que está ocorrendo - só é ruim em tutoriais, por confundir o leitor). O problema maior é utilizar coisas do tipo "document.nome_do_elemento_html", "document.form1", etc.

Link para o comentário
Compartilhar em outros sites

  • 0

Nesse caso não faz absolutamente nada. Para entender melhor, troque o nome do parâmetro:

<HTML>
<HEAD>
<script LANGUAGE="javascript">
function controle(elemento) {
var test = document.form1.input.value;
alert("Escreveste: " + test);
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="form1">
<INPUT TYPE="text" NAME="input" VALUE=""><BR>
<INPUT TYPE="button" NAME="botao" VALUE="Controlar" onClick="controle(form1)">
</FORM>
</BODY>
</HTML>
Como você pode ver, o parâmetro não é utilizado. Seria utilizado se você trocasse essa linha:
var test = document.form1.input.value
Por:
var test = elemento.input.value;

Não sei o motivo que fez o autor criar uma função cujos parâmetros não são utilizados e, pior, colocou um nome que poderia confundir o leitor (form1, que é o nome do parâmetro e ainda o nome do formulário)

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, entendi mais um pouco. Agora pra finalizar, KKKKKK

Tipo, você falou q se eu colocasse: var test = elemento.input.value;, ai sim utilizaria o parâmetro da função.

Então vamos fazer de conta (bem superficialmente, só pra eu entender), q o parâmetro "elemento", seria como se fosse uma variável, q teria o valor "document.name_do_formulario", correto?

Desculpem a burrice, fazer o que .. KKKKK

Link para o comentário
Compartilhar em outros sites

  • 0

Sim, é mais ou menos isso. E o parâmetro tem o valor "document.name_do_formulario" porque a chamada foi feita com "controle(form1)" (nesse caso, o "document" ficou implícito porque era um código Javascript inline). Mas o ideal seria utilizar o document.getElementById ao invés de document.name_do_elemento.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...