Dlaczego poniższe fragmenty kodu zaczerpnięte z tego artykułu dają różne wyniki z powodu tylko jednej zmiany w umiejscowieniu nawiasów klamrowych?
Gdy otwór nawias klamrowy {
jest w nowej linii, test()
powraca undefined
, i „nie - złamał: niezdefiniowane” wyświetlany jest w pogotowiu.
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);
}
Kiedy nawias znajduje się w tym samym wierszu, co return
, test()
zwraca obiekt i ostrzega o „fantastycznym”.
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
jest nieco inna niż w innych miejscach, a podział wiersza „oznacza więcej” w tym miejscu niż „w środku strumienia”.