2016-07-26 57 views
4

今天我看到一段代碼,這是我以前從未見過:創建Javascript對象而不明確定義鍵?

var a = 1; 
var b = 2; 
var c = { a, b }; 

這將創建一個對象(歸屬於C),其中包含兩個鍵,這些都是變量的名稱,和值是變量的值如下:

{ 
    a: 1, 
    b: 2 
} 

這是正常的嗎?我無法找到與此相關的任何內容或以這種方式創建對象。我在Chrome上測試過它,它工作得很好,但我不確定這是否會在每個瀏覽器中都能正常工作。

我希望創建的對象是這樣的:

var c = { a: a, b: b }; 
+0

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Object_destructuring有一些例子 –

+0

我確定這個問題已經被問到。誰找到原來的? – nicael

+0

@nicael你呢? :D –

回答

8

這是ES6對象的簡寫,在這裏你可以使用變量從目前的範圍,對象(字面)內申報財產的一部分與與該變量具有相同的名稱和值。

也就是說,只要ab都在當前範圍內,c = {a, b}擴展爲c = {a: a, b: b}

MDN文檔進入more detail here