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"