当大括号在下一行开始时,对象文字表达式不被解析

时间:2019-06-03 16:38:24

标签: javascript object-literal

我试图定义以下内容:

function twelveHourTime(date)
{
    let hour = date.getHours() % 12;
    if (hour == 0)
        hour = 12;
    return
    {
        hour: hour.toString(),
        minute: date.getMinutes().toString().padStart(2, '0'),
        suffix: date.getHours() < 12 ? "AM" : "PM"
    };
}

并且return语句中的对象文字没有这样解析。

但是,以下return语句应正常工作:

return {
    hour: hour.toString(),
    minute: date.getMinutes().toString().padStart(2, '0'),
    suffix: date.getHours() < 12 ? "AM" : "PM"
};

我假设解析器将前一种情况下的初始花括号视为一个块的开始,而不是对象文字的开始,但是如果是这样,那么在后一种情况下它是否应该这样做?

0 个答案:

没有答案