ก่อน ES6 ต้องสร้างออบเจ็กต์ก่อน แล้วค่อยกำหนด property แบบ dynamic แยก 2 ขั้นตอน ES6 ใช้ Computed Property Names เขียนใน object literal ได้เลย
วิธีเก่า 2 ขั้นตอน
<html> <body> <script>
let person = 'name';
let student = { id: 1 }; // step 1
student[person] = 'nani'; // step 2
document.write(JSON.stringify(student));
</script> </body> </html>
ผลลัพธ์
{"id":1,"name":"nani"}
วิธี ES6 Computed Property Names
<html> <body> <script>
let person = 'name';
let student = { id: 1, [person]: "nani" };
document.write(JSON.stringify(student));
</script> </body> </html>
ผลลัพธ์
{"id":1,"name":"nani"}
ใช้ [variable] ใน object literal ตั้งค่า key แบบ dynamic ได้ในบรรทัดเดียว