Почему приведенные ниже фрагменты кода, взятые из этой статьи , дают разные результаты из-за всего лишь одного изменения в расположении фигурных скобок?
Когда открывающая фигурная скобка {
находится на новой строке, test()
возвращается undefined
, и в предупреждении отображается «нет - она сломалась: undefined».
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);
}
Когда фигурная скобка находится на той же строке, что и return
, test()
возвращает объект, и предупреждается "фантастический".
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
немного отличается от в других местах, и разрыв строки «означает больше» в этом месте, чем «в середине».