Por que os resultados variam com base no posicionamento das chaves?
Por que os trechos de código abaixo, retirados deEste artigo, produzir resultados diferentes devido a apenas uma única alteração na colocação de chaves?
Quando a cinta de abertura{
está em uma nova linha,test()
retornaundefined
e "não - quebrou: indefinido" é exibido no alerta.
function test()
{
return
{ /* <--- curly brace on new line */
javascript: "fantastic"
};
}
var r = test();
try {
alert(r.javascript); // does this work...?
} catch (e) {
alert('no - it broke: ' + typeof r);
}
Quando a chave está na mesma linha quereturn
, test()
retorna um objeto e "fantástico" é alertado.
function test()
{
return { /* <---- curly brace on same line */
javascript: "fantastic"
};
}
var r = test();
try {
alert(r.javascript); // does this work...?
} catch (e) {
alert('no - it broke: ' + typeof r);
}