ऑब्जेक्ट प्रॉपर्टी तक पहुंचने के लिए दो अलग-अलग नोटेशन हैं
- डॉट नोटेशन: myObj.prop1
- ब्रैकेट नोटेशन: myObj ["prop1"]
डॉट नोटेशन तेज़ और आसान है लेकिन आपको वास्तविक संपत्ति के नाम का स्पष्ट रूप से उपयोग करना चाहिए । कोई प्रतिस्थापन, चर, आदि।
ब्रैकेट नोटेशन ओपन एंडेड है। यह एक स्ट्रिंग का उपयोग करता है लेकिन आप किसी भी कानूनी js कोड का उपयोग करके स्ट्रिंग का उत्पादन कर सकते हैं। आप स्ट्रिंग को शाब्दिक के रूप में निर्दिष्ट कर सकते हैं (हालांकि इस मामले में डॉट नोटेशन आसान पढ़ा जाएगा) या किसी तरह से एक चर या गणना का उपयोग करें।
तो, इन सभी सेट myObj संपत्ति नामित prop1 मूल्य को नमस्कार :
// quick easy-on-the-eye dot notation
myObj.prop1 = "Hello";
// brackets+literal
myObj["prop1"] = "Hello";
// using a variable
var x = "prop1";
myObj[x] = "Hello";
// calculate the accessor string in some weird way
var numList = [0,1,2];
myObj[ "prop" + numList[1] ] = "Hello";
नुकसान:
myObj.[xxxx] = "Hello"; // wrong: mixed notations, syntax fail
myObj[prop1] = "Hello"; // wrong: this expects a variable called prop1
tl; dnr : यदि आप कुंजी की गणना या संदर्भ करना चाहते हैं तो आपको ब्रैकेट नोटेशन का उपयोग करना चाहिए । यदि आप कुंजी को स्पष्ट रूप से उपयोग कर रहे हैं, तो सरल स्पष्ट कोड के लिए डॉट नोटेशन का उपयोग करें ।
नोट: कुछ अन्य अच्छे और सही उत्तर हैं, लेकिन मैंने व्यक्तिगत रूप से उन्हें जेएस ऑन-द-फ्लाई क्विकनेस के साथ कम परिचितता से थोड़ा संक्षिप्त रूप में पाया। यह कुछ लोगों के लिए उपयोगी हो सकता है।