¿Por qué los resultados varían según la colocación de llaves?
¿Por qué los fragmentos de código a continuación, tomados deEste artículo, produce resultados diferentes debido a un solo cambio en la colocación de llaves?
Cuando la llave de apertura{
está en una nueva línea,test()
devolucionesundefined
, y "no - se rompió: indefinido" se muestra en la 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);
}
Cuando el aparato ortopédico está en la misma línea quereturn
, test()
devuelve un objeto y se alerta a "fantástico".
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);
}