簡體   English   中英

為什么直接在Object文字上訪問屬性會拋出一個SyntaxError?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM