เป็น Object Initializer Property Shorthandใน ES6
var f = {a, b, c, d:1};
ใช้งานได้เนื่องจากค่าคุณสมบัติมีชื่อเดียวกับตัวระบุคุณสมบัติ นี่เป็นส่วนเพิ่มเติมใหม่ของไวยากรณ์ของObject Initialiser ( ส่วนที่ 11.1.5 ) ในECMAScript 6 ฉบับล่าสุดRev 1313 และแน่นอนเช่นเดียวกับข้อ จำกัด ที่กำหนดจาก 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();