[~ # ~] modifier [~ # ~] Après avoir jeté un œil à JSHint, j'ai trouvé cette expression ' de déstructuration' est disponible dans ES6 (utiliser l'option esnext) ou les extensions Mozilla JS (utiliser moz) et this mais après l'avoir lu, je ne comprends toujours pas pourquoi il est utilisé
J'ai rencontré le code suivant sur MDN
var ui = require("sdk/ui");
var { ActionButton } = require("sdk/ui/button/action");
Que font les accolades de la deuxième ligne et pourquoi sont-elles utilisées? Pourquoi n'y a-t-il pas d'accolades sur la première ligne?
C’est ce qu’on appelle affectation de déstructuration , et il s’agit d’une nouvelle fonctionnalité de JavaScript 1.7 (et ECMAScript 6 ) (actuellement disponible uniquement dans les versions précédentes). Moteur JavaScript FireFox.) En gros, cela se traduirait par:
var ActionButton = require("sdk/ui/button/action").ActionButton;
Cela semble idiot dans cet exemple, car un seul élément est attribué. Cependant, vous pourriez utiliser ce modèle pour affecter plusieurs variables à la fois:
{x, y} = foo;
Est l'équivalent de:
x = foo.x;
y = foo.y;
Ceci peut également être utilisé pour les tableaux. Par exemple, vous pouvez facilement échanger deux valeurs sans utiliser de variable temporaire:
var a = 1;
var b = 3;
[a, b] = [b, a];
La prise en charge du navigateur peut être suivie à l'aide de table de compatibilité de kangax 'ES6 .