คีย์วัตถุ Javascript วงเล็บเหลี่ยม


113

ใครสามารถอธิบายได้ว่าทำไม / วิธีการกำหนดคีย์ด้านล่างใน JavaScript ทำงานอย่างไร

a = "b"
c = {[a]: "d"}

กลับ:

Object {b: "d"}

คำตอบ:


166

มันเป็น ES2015 ใหม่ (ข้อมูลจำเพาะ ECMAScript ที่รู้จักกันอย่างเป็นทางการเป็น ES6) คำนวณชื่อคุณสมบัติไวยากรณ์ เป็นชวเลขสำหรับsomeObject[someKey]งานที่คุณรู้จาก ES3 / 5:

var a = "b"
var c = {[a]: "d"}

เป็นน้ำตาลวากยสัมพันธ์สำหรับ:

var a = "b"
var c = {}
c[a] = "d"

29

จริงๆการใช้[]ให้เป็นวิธีที่ดีที่จะใช้มูลค่าที่แท้จริงของตัวแปรที่สำคัญ/สถานที่ให้บริการในขณะที่สร้าง JavaScript วัตถุ

ฉันค่อนข้างพอใจกับคำตอบข้างต้นและฉันก็รู้สึกขอบคุณที่อนุญาตให้ฉันเขียนสิ่งนี้พร้อมกับตัวอย่างเล็กน้อย

ฉันดำเนินการโค้ดทีละบรรทัดบนNode REPL (Node shell)

> var key = "fullName";     // Assignment
undefined
>
> var obj = {key: "Rishikesh Agrawani"}    // Here key's value will not be used
undefined
> obj     // Inappropriate, which we don't want
{ key: 'Rishikesh Agrawani' }
>
> // Let's fix
undefined
> var obj2 = {[key]: "Rishikesh Agrawani"}
undefined
> obj2
{ fullName: 'Rishikesh Agrawani' }
>

7
const animalSounds = {cat: 'meow', dog: 'bark'};

const animal = 'lion';

const sound = 'roar';

{...animalSounds, [animal]: sound};

ผลลัพธ์จะเป็นอย่างไร

{cat: 'meow', dog: 'bark', lion: 'roar'};


-1

นอกจากนี้เงื่อนไขในการใช้[]สัญกรณ์สำหรับการเข้าถึงหรือกำหนดสิ่งต่างๆในวัตถุเมื่อเรายังไม่รู้ว่าจะเป็นอย่างไรจนกว่าจะมีการประเมินหรือรันไทม์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.