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