https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
以下構文で「valueという変数を宣言し、その中に右辺オブジェクトのhoge要素の内容を代入する」という操作が行える。
var obj = { hoge: "hogehoge", fuga: "fugafuga" };
var { hoge: value } = obj;
console.log(value); // "hogehoge"単独で見ると理解し辛い構文だが、まず以下のような「hoge,fugaという変数を宣言し、その中に右辺オブジェクトの該当要素名の内容を代入する」という構文があって、その発展形だと理解するとわかりやすい。
var obj = { hoge: "hogehoge", fuga: "fugafuga" };
var { hoge, fuga } = obj;
console.log(hoge); // "hogehoge"
console.log(fuga); // "fugafuga"ちなみにこvar, let, constの宣言無しに使うと構文エラーになるが、括弧をつけてやると正常に動作する。
var value = "";
{ hoge: value } = { hoge: "fuga" }; // これはエラー
({ hoge: value } = { hoge: "fuga" }); // これは動作する
console.log(value); // "fuga"