web-dev-qa-db-ja.com

Javascript(ES6)constと中括弧

私はECMAScript 6を初めて使用します。Emberを学習しようとしているときに、次のコードスタイルがときどき見られました。

const {
  abc,
  def
} = Object;

Googleと、新しいES6仕様を説明する多くのサイトを検索しました。これを入力すると、コンソールがエラーを出すため、これが現在の実装ではないことを知っています。

このコードはどういう意味ですか?

UPDATE

このスニペットを Babel's transpiler に貼り付けたところ、次のように返されました。

"use strict";

var abc = Object.abc;
var def = Object.def;

これが何を達成しようとしているかについて、私はまだ混乱しています。

72
tralston

ES2015 破壊の割り当て です。

より冗長な方法で書き直されるのを見るのに役立つかもしれません。

const abc = Object.abc;
const def = Object.def;

これは、オブジェクトからプロパティを変数に抽出する構文的に簡潔な方法です。

// you can rewrite this
const name = app.name;
const version = app.version;
const type = app.type;

// as this
const { name, version, type } = app;

ブラウザーベンダーは 現在も実装中 ES2015仕様であり、おそらくブラウザーで機能しなかった理由です。

ただし、Javascriptの将来の仕様をES5に戻すことができる Babel というプロジェクトがあります。 their REPL でES2015コードを試すことができます。

136
Dan Prince