2016-07-26 3 views
4

今日は私が前に見たことがないコードの一部を見た:明示的にキーを定義せずにJavascriptオブジェクトを作成していますか?

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

は、これは、これらの変数の名前である、2つのキーを含んでいる(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オブジェクト速記の一部であり、その変数と同じ名前と値。

つまり、c = {a, b}は、abの両方が現在のスコープにある限り、c = {a: a, b: b}に拡張されます。

MDNのマニュアルはmore detail hereになります。

関連する問題