O Visual Studio, além de ser uma IDE mega pesada, tem um problema que gera intrigas entre equipes: ele abre por padrão uma função no JavaScript colocando a chave na linha de baixo.
Parece algo mínimo, mas irrita profundamente quem está acostumado a trabalhar da forma correta.
Porque forma correta? Simples, porque pode dar erro se colocar a chave na linha de baixo.
Pensem na função abaixo getUser que retorna um objeto em JavaScript
function getUser(){
return {
nome:'Danilo',
idade:28
}
}
getUser() // retorna um objeto
Se fosse pra deixar a chave embaixo, ficaria assim:
function getUser()
{
return
{
nome:'Danilo',
idade:28
}
}
getUser() // retorna undefined
Só que há um problema: pelo fato do ponto e vírgula indicando quebra de linha ser no JavaScript ser opcional, o return não entende que é pra retornar um objeto e encerra a função ali, retornando undefined.
E tem um caso pior, que simplesmente dá erro de sintaxe:
function getPosition()
{
return
{
top:32,
left:50
}
}
// dá erro "SyntaxError: Unexpected token :"
E se fosse feito com os braces na linha de cima, daria certo.
O incrível é que mesmo com esse argumento, tem programador que não dá o braço a torcer e insiste dizendo que JavaScript veio do java e no java se programa assim. ERRADO, JavaScript veio de Scheme e qualquer livro de Padrões em Javascript vai aconselhar abrir o bloco com a chave na linha de cima.
Dá pra configurar isso no Visual Studio 2010 (no 2008 deve dar também).
Danilo é coordenador de interface da AdBat/Tesla, é Corinthiano e Vegan. Gosta de correr, de jogar xadrez, tênis, e futebol de videogame (no futebol de verdade ele é muito ruim). Programa de dia na AdBat/Telsa e de noite no 



January 20th, 2012 at 7:50 am
Ok, tu me falou do return, isso eu concordo, pois as chaves do JSON são para delimitar o tipo de variável, o típo JSON, seria o mesmo se tu retornasse qualquer outro tipo em baixo do return, tem que ser na linha.
O parenteses de função, é para marcar escopo, ou seja, é uma coisa completamente diferente, mas que usa o mesmo token.
Sendo assim, não vejo problemas em uma função do iniciar o parenteses na linha abaixo, não é errado, é apenas uma outra metodologia.
February 1st, 2012 at 4:11 pm
Mas as próprias coding conventions do Scheme também recomendam que você abra os blocos de instrução (funções, loops, if, etc) uma linha abaixo da declaração:
http://en.wikipedia.org/wiki/Scheme_%28programming_language%29
February 14th, 2012 at 9:58 am
Concordo com o Guilherme e o Adilson, não há problema algum em usar as chaves na linha de baixo, é até recomendável, o erro no exemplo do Danilo é que o objeto JSON inicia na linha abixo do return, e isso sim está errado, pois a s chaves da função servem para demarcação de bloco de código e as chaves json para criar o objeto, e o return devolve o que está logo em seguida (se houver), senão vai dar erro de sintaxe