Warum variieren die Ergebnisse aufgrund der Platzierung der geschweiften Klammer?

Warum die folgenden Code-Schnipsel aus @ machDieser Artike, unterschiedliche Ergebnisse erzielen, da sich die Platzierung der geschweiften Klammern nur einmal ändert?

Wenn die öffnende geschweifte Klammer{ ist in einer neuen Zeile,test() kehrt zurückundefined und "no - it broke: undefined" werden in der Warnung angezeigt.

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);
}

Wenn sich die geschweifte Klammer in der gleichen Zeile wie @ befindreturn, test() gibt ein Objekt zurück und "fantastic" wird alarmiert.

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);
}

Antworten auf die Frage(12)

Ihre Antwort auf die Frage