ऑब्जेक्ट्स

मान लीजिए कि आप एक एकल उपयोगकर्ता का वर्णन कर रहे हैं: एक नाम, एक ईमेल, एक आयु, चाहे वे साइन इन हैं। आप इन चारों को अलग-अलग चर में बिखरा सकते हैं, लेकिन वे एक साथ संबंधित हैं, और उन्हें अलग रखने का मतलब है कि हर बार जब आप "उपयोगकर्ता" का मतलब रखते हैं तो चार चीजें पास करनी पड़ती हैं। एक ऑब्जेक्ट आपको सभी को एक मान में इकट्ठा करने देता है, जहां प्रत्येक भाग का एक नाम है जिसे आप देख सकते हैं। अधिकांश डेटा जो आप संभालेंगे, एक उपयोगकर्ता, एक उत्पाद, एक कार्ट, ठीक इसी तरह आकार में आता है।
एक ऑब्जेक्ट बनाना
एक ऑब्जेक्ट नामित मानों का एक संग्रह है, जो घुंघराले ब्रेसेस के साथ लिखा गया है। इसके अंदर, आप key: value जोड़ियों को सूचीबद्ध करते हैं, जो कोमा से अलग होते हैं। कुंजी नाम है; मान यह है कि यह क्या रखता है:
const user = {
name: "राज",
age: 27,
};
console.log(user.name); // राजआप एक मान को बिंदु और कुंजी के साथ वापस पढ़ते हैं: user.name। इसे डॉट नोटेशन कहा जाता है, और यह वह है जो आप अधिकांशतः करेंगे। बाईं ओर कुंजी, दाईं ओर यह संग्रहीत मान।
एक मान को पढ़ने का एक दूसरा तरीका है, वर्ग कोष्ठक का उपयोग करके कुंजी को एक स्ट्रिंग के रूप में:
console.log(user["name"]); // राजअधिकांशतः डॉट नोटेशन स्पष्ट रूप से पढ़ता है, इसलिए इसका उपयोग करें। कोष्ठक अपनी जगह अर्जित करते हैं जब कुंजी एक सादा शब्द नहीं होती है (मान लीजिए इसमें एक स्थान है) या जब आप कुंजी को आगे से नहीं जानते और यह दूसरे चर में बैठा है।
const product = {
title: "डेस्क लैंप",
price: 40,
inStock: true,
};
console.log(`${product.title} की कीमत ${product.price} है`); // डेस्क लैंप की कीमत 40 हैएक ऑब्जेक्ट किसी अन्य की तरह एक मान है। आप इसे एक const में स्टोर कर सकते हैं, इसे एक सरणी में रख सकते हैं, इसे एक फ़ंक्शन को पास कर सकते हैं, और इसे लौटा सकते हैं। कुंजियाँ इसके भागों को नाम देती हैं, जो पूरी बात है: product.price कहता है कि यह क्या है, जहां एक नंगा 40 एक चर में बैठा है वह नहीं।
key: value जोड़ियों के रूप में लिखे गए हैं। एक मान को एक बिंदु और कुंजी के साथ पढ़ें, जैसे user.name। वर्ग-कोष्ठक फॉर्म के लिए तभी पहुंचें जब कुंजी में कोई अजीब चरित्र हो या यह एक चर में रहता हो। एक ऑब्जेक्ट को बदलना
ऑब्जेक्ट्स एक बार बनने के बाद निर्धारित नहीं होते हैं। आप एक नई कुंजी जोड़ सकते हैं, एक मौजूदा को बदल सकते हैं, या एक को पूरी तरह से हटा सकते हैं। जोड़ने या अपडेट करने के लिए, कुंजी को असाइन करें:
const user = {
name: "राज",
};
user.age = 30; // एक नई कुंजी जोड़ता है
user.name = "राज शर्मा"; // मौजूदा को अपडेट करता है
console.log(user); // { name: "राज शर्मा", age: 30 }यदि कुंजी पहले से मौजूद है, तो उसे असाइन करना मान को बदल देता है। यदि यह नहीं है, तो इसे बनाया जाता है। एक कुंजी को हटाने के लिए, delete का उपयोग करें:
delete user.age;
console.log(user); // { name: "राज शर्मा" }यहाँ वह हिस्सा है जो लोगों को आश्चर्यचकित करता है। एक const ऑब्जेक्ट के गुणों को अभी भी बदला जा सकता है। const का मतलब है कि नाम user एक अलग ऑब्जेक्ट की ओर इशारा नहीं कर सकता, लेकिन ऑब्जेक्ट जिस ओर यह इशारा करता है वह उचित खेल है:
const cart = { total: 0 };
cart.total = 25; // ठीक है, अंदर क्या है बदलना
// cart = { total: 25 }; // यह त्रुटि होगी, नाम को फिर से असाइन करनाdelete का उपयोग करें। आश्चर्य है const है: यह आपको user को एक अलग ऑब्जेक्ट की ओर इशारा करने से रोकता है, लेकिन आप अभी भी जो अंदर है वह बदल सकते हैं। मुझे const को सब कुछ लॉक करने की उम्मीद करना बंद करने में कुछ समय लगा। विधियाँ और this
एक ऑब्जेक्ट में एक मान एक फ़ंक्शन हो सकता है। जब यह होता है, तो इसे एक विधि कहा जाता है: कुछ ऑब्जेक्ट कर सकता है, बजाय एक तथ्य के जो यह संग्रहीत करता है। आप इसे एक ही बिंदु के साथ कॉल करते हैं, साथ ही कोष्ठक:
const user = {
name: "राज",
greet() {
return `नमस्ते, मैं ${this.name} हूँ`;
},
};
console.log(user.greet()); // नमस्ते, मैं राज हूँअंदर नया शब्द this है। जब आप user.greet() कॉल करते हैं, तो this का अर्थ है "वह ऑब्जेक्ट जिस पर यह विधि को कॉल किया गया था", जो यहाँ user है। इसलिए this.name एक ही ऑब्जेक्ट से name कुंजी को पढ़ता है। यह कैसे एक विधि अपने ऑब्जेक्ट के मानों तक पहुंचती है बिना आपके उन्हें पास किए।
user.greet()। इसके अंदर, this का अर्थ है वह ऑब्जेक्ट जिस पर विधि को कॉल किया गया था, इसलिए this.name उस ऑब्जेक्ट की अपनी name को पढ़ता है। यह कैसे एक विधि अपने ऑब्जेक्ट के मानों तक पहुंचती है। ऑब्जेक्ट्स और सरणियाँ एक साथ
अधिकांश वास्तविक डेटा ऑब्जेक्ट्स की एक सूची है: कई उपयोगकर्ता, कई उत्पाद, प्रत्येक ऑब्जेक्ट एक रिकॉर्ड एक ही कुंजियों के साथ। आप ऑब्जेक्ट्स को एक array में रखते हैं:
const products = [
{ title: "डेस्क लैंप", price: 40 },
{ title: "नोटबुक", price: 6 },
{ title: "पेन", price: 3 },
];
console.log(products[0].title); // डेस्क लैंपआप एक ऑब्जेक्ट तक इसकी स्थिति से पहुंचते हैं (products[0]), फिर एक बिंदु के साथ इसके एक क्षेत्र में (.title)। एक साथ श्रृंखलित, products[0].title पहले उत्पाद का शीर्षक पढ़ता है।
हर ऑब्जेक्ट से एक क्षेत्र को पढ़ने के लिए, सरणी पर लूप करें:
for (const product of products) {
console.log(product.title);
}
// डेस्क लैंप
// नोटबुक
// पेनलूप का प्रत्येक मोड़, product सूची से एक ऑब्जेक्ट है, और product.title इसका शीर्षक पढ़ता है। यह आकार, ऑब्जेक्ट्स की एक सरणी आप लूप करते हैं, अधिकांश डेटा काम जो आप करेंगे है।
products[0] के साथ एक को पहुंचें, फिर products[0].title के साथ एक क्षेत्र को। सरणी पर लूप करें हर रिकॉर्ड को छूने के लिए, और आपके पास अधिकांश डेटा कार्य का पैटर्न है जो आप करेंगे। ऑब्जेक्ट्स कहां अगले जाते हैं
ऑब्जेक्ट्स और arrays दो संरचनाएं हैं जो आप लगातार पहुंचेंगे, और अधिकांश डेटा जो आप संभालते हैं दोनों का कुछ नेस्टिंग है: सरणी क्षेत्रों वाली ऑब्जेक्ट्स, ऑब्जेक्ट्स की सरणियाँ, और दोनों का संयोजन। उन्हें array methods के साथ जोड़ी करें और आप लगभग किसी भी डेटा को उस रूप में आकार दे सकते हैं जो आपको चाहिए।
अगला कदम ऑब्जेक्ट्स को एक पृष्ठ में कार्य करना है। जब आप the DOM तक पहुंचते हैं, तो तत्व जो आप पढ़ते और बदलते हैं वह भी ऑब्जेक्ट्स होते हैं, जिनमें कुंजियाँ आप सेट करते हैं और विधियाँ आप कॉल करते हैं, इसलिए सब कुछ यहां सीधे भेजा जाता है।

