ऑब्जेक्ट जावास्क्रिप्ट का एक मूलभूत हिस्सा हैं, जो डेटा को संग्रहीत और प्रबंधित करने के लिए रीढ़ की हड्डी के रूप में कार्य करते हैं। एक वस्तु गुणों का एक संग्रह है, और प्रत्येक संपत्ति एक कुंजी (या नाम) और एक मान के बीच एक संबंध है। किसी भी जावास्क्रिप्ट डेवलपर के लिए वस्तुओं को बनाने, हेरफेर करने और उपयोग करने का तरीका समझना महत्वपूर्ण है। इस लेख में, हम जावास्क्रिप्ट में विभिन्न ऑब्जेक्ट फ़ंक्शंस का पता लगाएंगे, आपको उनमें महारत हासिल करने में मदद करने के लिए विस्तृत स्पष्टीकरण, उदाहरण और टिप्पणियाँ प्रदान करेंगे।
जावास्क्रिप्ट में, ऑब्जेक्ट का उपयोग डेटा के संग्रह और अधिक जटिल संस्थाओं को संग्रहीत करने के लिए किया जाता है। वे ऑब्जेक्ट लिटरल या ऑब्जेक्ट कंस्ट्रक्टर का उपयोग करके बनाए गए हैं।
// Using object literals let person = { name: "John", age: 30, city: "New York" }; // Using the Object constructor let person = new Object(); person.name = "John"; person.age = 30; person.city = "New York";
let obj = {}; console.log(obj.__proto__ === Object.prototype); // Output: true
एक या अधिक स्रोत ऑब्जेक्ट से सभी गणना योग्य स्वयं के गुणों के मानों को लक्ष्य ऑब्जेक्ट में कॉपी करता है। यह लक्ष्य वस्तु लौटाता है।
let target = {a: 1}; let source = {b: 2, c: 3}; Object.assign(target, source); console.log(target); // Output: {a: 1, b: 2, c: 3}
निर्दिष्ट प्रोटोटाइप ऑब्जेक्ट और गुणों के साथ एक नई ऑब्जेक्ट बनाता है।
let person = { isHuman: false, printIntroduction: function() { console.log(`My name is ${this.name}. Am I human? ${this.isHuman}`); } }; let me = Object.create(person); me.name = "Matthew"; me.isHuman = true; me.printIntroduction(); // Output: My name is Matthew. Am I human? true
नए को परिभाषित करता है या मौजूदा गुणों को सीधे किसी ऑब्जेक्ट पर संशोधित करता है, ऑब्जेक्ट को वापस लाता है।
let obj = {}; Object.defineProperties(obj, { property1: { value: true, writable: true }, property2: { value: "Hello", writable: false } }); console.log(obj); // Output: { property1: true, property2: 'Hello' }
किसी ऑब्जेक्ट पर सीधे एक नई संपत्ति को परिभाषित करता है या किसी मौजूदा संपत्ति को संशोधित करता है और ऑब्जेक्ट को वापस करता है।
let obj = {}; Object.defineProperty(obj, 'property1', { value: 42, writable: false }); console.log(obj.property1); // Output: 42 obj.property1 = 77; // No error thrown, but the property is not writable console.log(obj.property1); // Output: 42
किसी दिए गए ऑब्जेक्ट की अपनी गणना योग्य स्ट्रिंग-कुंजी वाली संपत्ति [कुंजी, मान] जोड़े की एक सरणी लौटाता है।
let obj = {a: 1, b: 2, c: 3}; console.log(Object.entries(obj)); // Output: [['a', 1], ['b', 2], ['c', 3]]
किसी ऑब्जेक्ट को फ़्रीज़ करता है। जमी हुई वस्तु को अब बदला नहीं जा सकता; किसी ऑब्जेक्ट को फ्रीज करना नई संपत्तियों को इसमें जोड़ने से रोकता है, मौजूदा संपत्तियों को हटाने से रोकता है, और मौजूदा संपत्तियों के मूल्यों को बदलने से रोकता है।
let obj = {prop: 42}; Object.freeze(obj); obj.prop = 33; // Fails silently in non-strict mode console.log(obj.prop); // Output: 42
कुंजी-मूल्य जोड़े की एक सूची को एक ऑब्जेक्ट में बदल देता है।
let entries = new Map([['foo', 'bar'], ['baz', 42]]); let obj = Object.fromEntries(entries); console.log(obj); // Output: { foo: 'bar', baz: 42 }
किसी दी गई वस्तु की अपनी संपत्ति के लिए एक संपत्ति विवरणक लौटाता है (अर्थात, जो किसी वस्तु पर सीधे मौजूद है और वस्तु की प्रोटोटाइप श्रृंखला में नहीं है)।
let obj = {property1: 42}; let descriptor = Object.getOwnPropertyDescriptor(obj, 'property1'); console.log(descriptor); // Output: { value: 42, writable: true, enumerable: true, configurable: true }
एक ऑब्जेक्ट लौटाता है जिसमें किसी ऑब्जेक्ट के सभी प्रॉपर्टी डिस्क्रिप्टर होते हैं।
let obj = {property1: 42}; let descriptors = Object.getOwnPropertyDescriptors(obj); console.log(descriptors); /* Output: { property1: { value: 42, writable: true, enumerable: true, configurable: true } } */
किसी दिए गए ऑब्जेक्ट पर सीधे पाए गए सभी गुणों (प्रतीक का उपयोग करने वाले को छोड़कर गैर-गणना योग्य गुणों सहित) की एक सरणी लौटाता है।
let obj = {a: 1, b: 2, c: 3}; let props = Object.getOwnPropertyNames(obj); console.log(props); // Output: ['a', 'b', 'c']
किसी दिए गए ऑब्जेक्ट पर सीधे पाए जाने वाले सभी प्रतीक गुणों की एक सरणी लौटाता है।
let obj = {}; let sym = Symbol('foo'); obj[sym] = 'bar'; let symbols = Object.getOwnPropertySymbols(obj); console.log(symbols); // Output: [Symbol(foo)]
निर्दिष्ट ऑब्जेक्ट का प्रोटोटाइप (यानी, आंतरिक [[प्रोटोटाइप]] संपत्ति का मूल्य) लौटाता है।
let proto = {}; let obj = Object.create(proto); console.log(Object.getPrototypeOf(obj) === proto); // Output: true
यह निर्धारित करता है कि क्या दो मान समान मूल्य हैं।
console.log(Object.is('foo', 'foo')); // Output: true console.log(Object.is({}, {})); // Output: false
यह निर्धारित करता है कि किसी वस्तु के विस्तार की अनुमति है या नहीं।
let obj = {}; console.log(Object.isExtensible(obj)); // Output: true Object.preventExtensions(obj); console.log(Object.isExtensible(obj)); // Output: false
यह निर्धारित करता है कि कोई वस्तु जमी हुई है या नहीं।
let obj = {}; console.log(Object.isFrozen(obj)); // Output: false Object.freeze(obj); console.log(Object.isFrozen(obj)); // Output: true
यह निर्धारित करता है कि कोई वस्तु सील है या नहीं।
let obj = {}; console.log(Object.isSealed(obj)); // Output: false Object.seal(obj); console.log(Object.isSealed(obj)); // Output: true
किसी दिए गए ऑब्जेक्ट की अपनी गणना योग्य संपत्ति नामों की एक सरणी लौटाता है, जिसे सामान्य लूप के समान क्रम में दोहराया जाता है।
let obj = {a: 1, b: 2, c: 3}; console.log(Object.keys(obj)); // Output: ['a', 'b', 'c']
किसी ऑब्जेक्ट के किसी भी विस्तार को रोकता है।
let obj = {}; Object.preventExtensions(obj); obj.newProp = 'test'; // Throws an error in strict mode console.log(obj.newProp); // Output: undefined
किसी ऑब्जेक्ट को सील करता है, नई संपत्तियों को इसमें जोड़ने से रोकता है और सभी मौजूदा संपत्तियों को गैर-कॉन्फ़िगर करने योग्य के रूप में चिह्नित करता है। वर्तमान संपत्तियों के मूल्य तब तक बदले जा सकते हैं जब तक वे लिखने योग्य हैं।
let obj = {property1: 42}; Object.seal(obj); obj.property1 = 33; delete obj.property1; // Throws an error in strict mode console.log(obj.property1); // Output: 33
किसी निर्दिष्ट ऑब्जेक्ट के प्रोटोटाइप (यानी, आंतरिक [[प्रोटोटाइप]] प्रॉपर्टी) को किसी अन्य ऑब्जेक्ट या शून्य पर सेट करता है।
let proto = {}; let obj = {}; Object.setPrototypeOf(obj, proto); console.log(Object.getPrototypeOf(obj) === proto); // Output: true
किसी दिए गए ऑब्जेक्ट के स्वयं के गणना योग्य संपत्ति मूल्यों की एक सरणी लौटाता है, उसी क्रम में जैसे कि लूप में प्रदान किया गया है।
let obj = {a: 1, b: 2, c: 3}; console.log(Object.values(obj)); // Output: [1, 2, 3]
किसी ऑब्जेक्ट को क्लोन करने के लिए object.assign() का उपयोग करना।
let obj = {a: 1, b: 2}; let clone = Object.assign({}, obj); console.log(clone); // Output: {a: 1, b: 2}
ऑब्जेक्ट्स को मर्ज करने के लिए ऑब्जेक्ट.असाइन() का उपयोग करना।
let obj1 = {a: 1, b: 2}; let obj2 = {b: 3, c: 4}; let merged = Object.assign({}, obj1, obj2); console.log(merged); // Output: {a: 1, b: 3, c: 4}
निर्दिष्ट प्रोटोटाइप के साथ ऑब्जेक्ट बनाने के लिए ऑब्जेक्ट.क्रिएट() का उपयोग करना।
let proto = {greet: function() { console.log("Hello!"); }}; let obj = Object.create(proto); obj.greet(); // Output: Hello!
अपरिवर्तनीय गुणों को परिभाषित करने के लिए object.defineProperty() का उपयोग करना।
let obj = {}; Object.defineProperty(obj, 'immutableProp', { value: 42, writable: false }); console.log(obj.immutableProp); // Output: 42 obj.immutableProp = 77; // Throws an error in strict mode console.log(obj.immutableProp); // Output: 42
किसी ऑब्जेक्ट को कुंजी-मूल्य जोड़े की सरणी में परिवर्तित करने के लिए ऑब्जेक्ट.entries() का उपयोग करना।
let obj = {a: 1, b: 2, c: 3}; let entries = Object.entries(obj); console.log(entries); // Output: [['a', 1], ['b', 2], ['c', 3]]
ऑब्जेक्ट जावास्क्रिप्ट का एक मुख्य घटक हैं, जो डेटा को प्रबंधित और हेरफेर करने का एक लचीला तरीका प्रदान करता है। ऑब्जेक्ट फ़ंक्शंस में महारत हासिल करके, आप जटिल ऑपरेशन आसानी से कर सकते हैं और अधिक कुशल और रखरखाव योग्य कोड लिख सकते हैं। इस व्यापक मार्गदर्शिका में विस्तृत उदाहरणों और स्पष्टीकरणों के साथ जावास्क्रिप्ट में सबसे महत्वपूर्ण ऑब्जेक्ट फ़ंक्शंस को शामिल किया गया है। इन फ़ंक्शंस का उपयोग करने का अभ्यास करें और अपनी समझ को गहरा करने और अपने कोडिंग कौशल को बढ़ाने के लिए विभिन्न उपयोग मामलों के साथ प्रयोग करें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3