Perché gli snippet di codice riportati di seguito, presi da questo articolo , producono risultati diversi a causa di un solo cambiamento nel posizionamento delle parentesi graffe?
Quando la parentesi graffa di apertura si {
trova su una nuova riga, test()
restituisce undefined
e "no - si è rotto: undefined" viene visualizzato nell'avviso.
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 la parentesi graffa si trova sulla stessa riga di return
, test()
restituisce un oggetto e "fantastico" viene avvisato.
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);
}
return
è leggermente diversa rispetto ad altri punti, e un'interruzione di riga "significa più" in quel punto di quanto non sarebbe "midstream".