[英]Why does accessing a property directly on an Object literal throw a SyntaxError?
當試圖訪問屬性a
對象的{}
{}.a
我收到了錯誤
SyntaxError: Unexpected token .
parens一切都很好:
({}).a
為什么我在第一個地方出錯? 有歧義嗎?
花括號被解釋為塊語句 ,而不是對象文字。 您不能使用左大括號開始表達式語句。
規范說明:
注意 ExpressionStatement不能以開括號大括號開頭,因為這可能使其與Block不一致 。 此外, ExpressionStatement不能以
function
關鍵字開頭,因為這可能使其與FunctionDeclaration不一致 。
資料來源: http : //es5.github.com/x12.html#x12.4
{}是用來構建對象的。 通常,您首先將新對象分配給變量。
var o = {
a: "b"
};
console.log(o.a);
但這也是可能的:
console.log({
a: "b"
}.a);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.