Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jorginhobr84

[Resolvido] como declarar function

Recommended Posts

Olá pessoal,

comecei a estudar javascript a poucos dias e surgiu uma dúvida ao ver estes 2 exemplos:

 

 

Exemplo 1

<script type="text/javascript">
var arr = [1,4,7,15];
funcaoUm = function(v1,v2,ind,arr){
	return v1+ v2;
};
var x = arr.reduce(funcaoUm,100);
alert(x);
</script>

 

Exemplo 2

<script type="text/javascript">
var arr = [1,4,7,15];
function funcaoUm(v1,v2,ind,arr){
	return v1+ v2;
};
var x = arr.reduce(funcaoUm,100);
alert(x);
</script>

 

está certo a declaração de function no 1º exemplo?

posso usar tanto uma forma como a outra?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que eu sei, a primeira forma você deve declarar que é uma variável :

 

var funcaoUm = function() {}

E em ambos os casos não sei mas acho que aquele ponto-e-vírgula depois do fecho de chave não deve existir.

 

Mas pode ser que seja opcional também. Eu sei que eu não uso. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou lendo o livro do maujor: JavaScript Guia do programador, e aqui consta 3 sintaxes diferentes para se criar funções:

 

1º com o uso da declaração FUNCTION

function minhaFuncao(){
           //bloco de código
};

 

2º uso do objeto construtor precedido da palavra-chave NEW

var minhaFuncao = new function (//bloco de código);

 

3º uso da sintaxe literal

var minhaFuncao = fuction(){
          //bloco de código
};

 

aquela do exemplo 1 seria a sintaxe literal mas sem o var?

 

o ponto e vírgula após o fechamento da chave deve ser opcional, pois eu vi vários exemplos com ou sem ele...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Referente à escopo, as duas são iguais, porém devido à forma que o Javascript declara variaveis e da forma que a engine interpreta o código, você pode executar uma função declarada à qualquer momento no teu script, mesmo antes do código que declara ela, já uma função atribuida à uma variavel somente pode ser executada após a atribuição da mesma.

 

Ex:

(function(){
   a(); //funciona
   function a(){
       alert( ':D' );
   };

   b(); //não funciona
   var b = function(){
       alert( ':(' );
   };
}());

 

O ponto e virgula é opcional, mas é boa prática colocá-lo sempre. O ideal é você pegar uma forma que mais lhe convenha, e ficar com ela, consistência é o mais importante.

 

E lembrando, uma função declarada dentro de outra função não se torna global:

(function(){
   function naoSouGlobal(){
       alert( 'Legal, não?' );
   }
   naoSouGlobal(); //funciona
}());

naoSouGlobal(); //não funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.