當試圖訪問該對象{}
爲什麼在Object Object上直接訪問屬性會引發SyntaxError?
{}.a
我得到錯誤的財產a
SyntaxError: Unexpected token .
用括號一切都很好:
({}).a
爲什麼我會得到一個錯誤在第一個地方?有歧義嗎?
當試圖訪問該對象{}
爲什麼在Object Object上直接訪問屬性會引發SyntaxError?
{}.a
我得到錯誤的財產a
SyntaxError: Unexpected token .
用括號一切都很好:
({}).a
爲什麼我會得到一個錯誤在第一個地方?有歧義嗎?
花括號被解釋爲block statement,而不是對象字面量。您無法用左大括號開始表達式語句。
說明書聲明:
注意的ExpressionStatement不能以大括號 開始,因爲這可能使含糊帶塊。而且, ExpressionStatement不能與
function
關鍵字,因爲 可能使其曖昧與FunctionDeclaration開始。
的{}在那裏建立的對象。通常您首先將新對象分配給一個變量。
var o = {
a: "b"
};
console.log(o.a);
而這也是可能的:
console.log({
a: "b"
}.a);
JavaScript語法只是不允許。 – Eliasdx 2011-12-18 18:30:01
表達式'{}'計算出一個沒有自己屬性的新本地對象。你想要訪問一個'Object.prototype'方法嗎? – 2011-12-18 18:42:04
[立即訪問對象的屬性]的可能重複(http://stackoverflow.com/questions/7518538/immediately-accessing-an-objects-property) – RightSaidFred 2011-12-18 18:46:36