स्क्वायर ब्रैकेट्स जावास्क्रिप्ट ऑब्जेक्ट कुंजी


109

क्या कोई समझा सकता है कि जावास्क्रिप्ट में कुंजियों को असाइन करने का निचला तरीका क्यों / कैसे काम करता है?

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

वापसी:

Object {b: "d"}

जवाबों:


162

यह नया ES2015 है (EcmaScript कल्पना औपचारिक रूप से ES6 के रूप में जाना जाता है) संपत्ति नाम वाक्य रचना । यह someObject[someKey]असाइनमेंट के लिए एक शॉर्टहैंड है जिसे आप ES3 / 5 से जानते हैं:

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

इसके लिए चीनी की मात्रा है:

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

27

वास्तव में जावास्क्रिप्ट ऑब्जेक्ट्स बनाते समय मुख्य संपत्ति के[] रूप में चर के वास्तविक मूल्य का उपयोग करने का एक शानदार तरीका देता है ।/

मैं उपरोक्त उत्तर से बहुत अधिक संतुष्ट हूं और मैं इसकी सराहना करता हूं क्योंकि इसने मुझे एक छोटे से उदाहरण के साथ यह लिखने की अनुमति दी।

मैंने कोड लाइन को नोड REPL (नोड शेल) पर लाइन द्वारा निष्पादित किया है ।

> 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' }
>

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

const animal = 'lion';

const sound = 'roar';

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

परिणाम होगा

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

-1

इसके अलावा, केवल []वस्तुओं को एक्सेस करने या असाइन करने के लिए नोटेशन का उपयोग करने के लिए शर्त जब हम अभी तक नहीं जानते कि यह मूल्यांकन या रनटाइम तक क्या होने वाला है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.