Warum führen die folgenden Codefragmente aus diesem Artikel aufgrund nur einer einzigen Änderung der Platzierung von geschweiften Klammern zu unterschiedlichen Ergebnissen?
Wenn sich die öffnende geschweifte Klammer {in einer neuen Zeile befindet, test()kehrt sie zurück undefinedund in der Warnung wird "Nein - es ist gebrochen: undefiniert" 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 Klammer in derselben Zeile befindet wie return, wird test()ein Objekt zurückgegeben und "fantastisch" 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);
}
returnsich geringfügig von der an anderen Stellen, und ein Zeilenumbruch bedeutet an dieser Stelle "mehr" als "Midstream".