Це скорочення властивостей об’єкта ініціалізації в ES6.
var f = {a, b, c, d:1};
Це працює, оскільки значення властивості має те саме ім’я, що і ідентифікатор властивості. Це нове доповнення до синтаксису Object Initialiser ( розділ 11.1.5 ) в останньому проекті ECMAScript 6 Rev 13 . І звичайно, як і обмеження, встановлені ECMAScript 3, ви не можете використовувати зарезервоване слово як назву власності.
Така скорочена довідка кардинально не змінить ваш код, а лише зробить все трохи солодшим!
function createCar(name, brand, speed) {
return { type: 'Car', name: name, brand: brand, speed: speed };
}
function createSweetCar(name, brand, speed) {
return { type: 'Car', name, brand, speed };
}
Будь ласка, перегляньте таблицю сумісності для підтримки цих позначень. У непідтримуваних середовищах ці позначення призведуть до синтаксичних помилок.
Цей стенографічний запис досить красиво відповідає об’єкту:
Що ми робили в ECMAScript5 :
var tmp = getData();
var op = tmp.op;
var lhs = tmp.lhs;
var rhs = tmp.rhs;
Це можна зробити в ECMAScript6 за допомогою одного рядка коду:
var { op, lhs, rhs } = getData();