web-dev-qa-db-fra.com

Javascript (ES6) avec des accolades

Je suis nouveau dans ECMAScript 6 et, tout en essayant d’apprendre Ember, j’ai vu le style de code suivant parfois:

const {
  abc,
  def
} = Object;

J'ai consulté Google et de nombreux sites expliquant les nouvelles spécifications de l'ES6. Je sais que ce n’est pas l’implémentation actuelle, car ma console donne une erreur lorsque je le sais.

Que veut dire ce code?

[~ # ~] met à jour [~ # ~]

J'ai collé cet extrait dans le transpiler de Babel , et voici ce qu'il est retourné:

"use strict";

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

Je ne comprends toujours pas ce que cela tente d'accomplir.

72
tralston

C'est un ES2015 mission de déstructuration .

Il pourrait être utile de le réécrire de manière plus détaillée.

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

Il s'agit d'une méthode synaptiquement concise pour extraire des propriétés d'objets, dans des variables.

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

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

Les fournisseurs de navigateurs sont toujours en train de mettre en œuvre la spécification ES2015, ce qui explique probablement pourquoi cela ne fonctionnait pas dans votre navigateur.

Cependant, il existe un projet appelé Babel qui vous permet de reconvertir les futures spécifications de Javascript en ES5. Vous pouvez essayer le code ES2015 dans leur REPL .

136
Dan Prince