January 21, 2012

Sintaxe alternativa para funções JavaScript

Em Javascript você pode usar a seguinte sintaxe para declarar funções independentes:

function ExibirMensagem(Texto) {
alert(texto);
}

A Linguagem JavaScript permite escrever isso na forma de uma atribuição de variável, se você preferir:

var ExibirMensagem = function(Texto) {
alert(Texto);
}

Conforme você pode esperar, há uma diferença muito sutil entre os efeitos desses dois estilos:
Uma função declarada como a primeira sintaxe pode ser usada por qualquer código no arquivo, mesmo que apareça antes da declaração da função. Uma função declarada como a última sintaxe só pode ser usada pelo código executando após a instrução de atribuição que declara a função. (Lembre-se: Se seu código for bem organizado, essa diferença não importa)

Você pode reduzir essa sequência inteira usando a sintaxe de objeto literal, conforme abaixo:

var NomePrograma = {

variavelX: "Apenas uma variavel",
Mensagem: function(texto){
alert(text);
}

};

Em vez de criar primeiro um objeto vazio e depois preenchê-lo com propriedades e métodos, usando uma série de instruções de atribuição, a sintaxe de objeto literal permite criar o objeto e seu conteúdo com uma única instrução.

Na sintaxe de objeto literal, representamos um novo objeto com chaves; dentro dessas chaves, listamos as propriedades e os métodos do objeto, separados por vírgulas. Para cada propriedade e método, atribuímos um valor usando dois pontos, em vez do perador de atribuição.

A sintaxe de objeto literal pode ser difícil de ler quando você está usando a sintaxe de atribuição padrão há algum tempo, mas ela é ligeiramente mais sucinta.