"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावास्क्रिप्ट-ऑब्जेक्ट्स में महारत हासिल करने के लिए एक गाइड

जावास्क्रिप्ट-ऑब्जेक्ट्स में महारत हासिल करने के लिए एक गाइड

2024-08-27 को प्रकाशित
ब्राउज़ करें:325

A Guide to Master JavaScript-Objects

ऑब्जेक्ट जावास्क्रिप्ट का एक मूलभूत हिस्सा हैं, जो डेटा को संग्रहीत और प्रबंधित करने के लिए रीढ़ की हड्डी के रूप में कार्य करते हैं। एक वस्तु गुणों का एक संग्रह है, और प्रत्येक संपत्ति एक कुंजी (या नाम) और एक मान के बीच एक संबंध है। किसी भी जावास्क्रिप्ट डेवलपर के लिए वस्तुओं को बनाने, हेरफेर करने और उपयोग करने का तरीका समझना महत्वपूर्ण है। इस लेख में, हम जावास्क्रिप्ट में विभिन्न ऑब्जेक्ट फ़ंक्शंस का पता लगाएंगे, आपको उनमें महारत हासिल करने में मदद करने के लिए विस्तृत स्पष्टीकरण, उदाहरण और टिप्पणियाँ प्रदान करेंगे।

जावास्क्रिप्ट में वस्तुओं का परिचय

जावास्क्रिप्ट में, ऑब्जेक्ट का उपयोग डेटा के संग्रह और अधिक जटिल संस्थाओं को संग्रहीत करने के लिए किया जाता है। वे ऑब्जेक्ट लिटरल या ऑब्जेक्ट कंस्ट्रक्टर का उपयोग करके बनाए गए हैं।

// 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";

वस्तु गुण

  • Object.prototype: प्रत्येक JavaScript ऑब्जेक्ट को उसके प्रोटोटाइप से गुण और विधियाँ प्राप्त होती हैं।
let obj = {};
console.log(obj.__proto__ === Object.prototype); // Output: true

वस्तु विधियाँ

1. ऑब्जेक्ट.असाइन()

एक या अधिक स्रोत ऑब्जेक्ट से सभी गणना योग्य स्वयं के गुणों के मानों को लक्ष्य ऑब्जेक्ट में कॉपी करता है। यह लक्ष्य वस्तु लौटाता है।

let target = {a: 1};
let source = {b: 2, c: 3};
Object.assign(target, source);
console.log(target); // Output: {a: 1, b: 2, c: 3}

2. ऑब्जेक्ट.क्रिएट()

निर्दिष्ट प्रोटोटाइप ऑब्जेक्ट और गुणों के साथ एक नई ऑब्जेक्ट बनाता है।

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

3. ऑब्जेक्ट.डिफाइनप्रॉपर्टीज()

नए को परिभाषित करता है या मौजूदा गुणों को सीधे किसी ऑब्जेक्ट पर संशोधित करता है, ऑब्जेक्ट को वापस लाता है।

let obj = {};
Object.defineProperties(obj, {
    property1: {
        value: true,
        writable: true
    },
    property2: {
        value: "Hello",
        writable: false
    }
});
console.log(obj); // Output: { property1: true, property2: 'Hello' }

4. ऑब्जेक्ट.डिफाइनप्रॉपर्टी()

किसी ऑब्जेक्ट पर सीधे एक नई संपत्ति को परिभाषित करता है या किसी मौजूदा संपत्ति को संशोधित करता है और ऑब्जेक्ट को वापस करता है।

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

5. वस्तु.प्रविष्टियां()

किसी दिए गए ऑब्जेक्ट की अपनी गणना योग्य स्ट्रिंग-कुंजी वाली संपत्ति [कुंजी, मान] जोड़े की एक सरणी लौटाता है।

let obj = {a: 1, b: 2, c: 3};
console.log(Object.entries(obj)); // Output: [['a', 1], ['b', 2], ['c', 3]]

6. ऑब्जेक्ट.फ़्रीज़()

किसी ऑब्जेक्ट को फ़्रीज़ करता है। जमी हुई वस्तु को अब बदला नहीं जा सकता; किसी ऑब्जेक्ट को फ्रीज करना नई संपत्तियों को इसमें जोड़ने से रोकता है, मौजूदा संपत्तियों को हटाने से रोकता है, और मौजूदा संपत्तियों के मूल्यों को बदलने से रोकता है।

let obj = {prop: 42};
Object.freeze(obj);
obj.prop = 33; // Fails silently in non-strict mode
console.log(obj.prop); // Output: 42

7. ऑब्जेक्ट.फ्रॉमएंट्रीज़()

कुंजी-मूल्य जोड़े की एक सूची को एक ऑब्जेक्ट में बदल देता है।

let entries = new Map([['foo', 'bar'], ['baz', 42]]);
let obj = Object.fromEntries(entries);
console.log(obj); // Output: { foo: 'bar', baz: 42 }

8. ऑब्जेक्ट.getOwnPropertyDescriptor()

किसी दी गई वस्तु की अपनी संपत्ति के लिए एक संपत्ति विवरणक लौटाता है (अर्थात, जो किसी वस्तु पर सीधे मौजूद है और वस्तु की प्रोटोटाइप श्रृंखला में नहीं है)।

let obj = {property1: 42};
let descriptor = Object.getOwnPropertyDescriptor(obj, 'property1');
console.log(descriptor);
// Output: { value: 42, writable: true, enumerable: true, configurable: true }

9. ऑब्जेक्ट.getOwnPropertyDescriptors()

एक ऑब्जेक्ट लौटाता है जिसमें किसी ऑब्जेक्ट के सभी प्रॉपर्टी डिस्क्रिप्टर होते हैं।

let obj = {property1: 42};
let descriptors = Object.getOwnPropertyDescriptors(obj);
console.log(descriptors);
/* Output:
{
  property1: {
    value: 42,
    writable: true,
    enumerable: true,
    configurable: true
  }
}
*/

10. ऑब्जेक्ट.getOwnPropertyNames()

किसी दिए गए ऑब्जेक्ट पर सीधे पाए गए सभी गुणों (प्रतीक का उपयोग करने वाले को छोड़कर गैर-गणना योग्य गुणों सहित) की एक सरणी लौटाता है।

let obj = {a: 1, b: 2, c: 3};
let props = Object.getOwnPropertyNames(obj);
console.log(props); // Output: ['a', 'b', 'c']

11. ऑब्जेक्ट.getOwnPropertySymbols()

किसी दिए गए ऑब्जेक्ट पर सीधे पाए जाने वाले सभी प्रतीक गुणों की एक सरणी लौटाता है।

let obj = {};
let sym = Symbol('foo');
obj[sym] = 'bar';
let symbols = Object.getOwnPropertySymbols(obj);
console.log(symbols); // Output: [Symbol(foo)]

12. ऑब्जेक्ट.getPrototypeOf()

निर्दिष्ट ऑब्जेक्ट का प्रोटोटाइप (यानी, आंतरिक [[प्रोटोटाइप]] संपत्ति का मूल्य) लौटाता है।

let proto = {};
let obj = Object.create(proto);
console.log(Object.getPrototypeOf(obj) === proto); // Output: true

13. वस्तु.is()

यह निर्धारित करता है कि क्या दो मान समान मूल्य हैं।

console.log(Object.is('foo', 'foo')); // Output: true
console.log(Object.is({}, {})); // Output: false

14. ऑब्जेक्ट.एक्सटेंसिबल()

यह निर्धारित करता है कि किसी वस्तु के विस्तार की अनुमति है या नहीं।

let obj = {};
console.log(Object.isExtensible(obj)); // Output: true
Object.preventExtensions(obj);
console.log(Object.isExtensible(obj)); // Output: false

15. ऑब्जेक्ट.फ्रोज़न()

यह निर्धारित करता है कि कोई वस्तु जमी हुई है या नहीं।

let obj = {};
console.log(Object.isFrozen(obj)); // Output: false
Object.freeze(obj);
console.log(Object.isFrozen(obj)); // Output: true

16. वस्तु.सीलबंद है()

यह निर्धारित करता है कि कोई वस्तु सील है या नहीं।

let obj = {};
console.log(Object.isSealed(obj)); // Output: false
Object.seal(obj);
console.log(Object.isSealed(obj)); // Output: true

17. ऑब्जेक्ट.कीज़()

किसी दिए गए ऑब्जेक्ट की अपनी गणना योग्य संपत्ति नामों की एक सरणी लौटाता है, जिसे सामान्य लूप के समान क्रम में दोहराया जाता है।

let obj = {a: 1, b: 2, c: 3};
console.log(Object.keys(obj)); // Output: ['a', 'b', 'c']

18. ऑब्जेक्ट.प्रिवेंटएक्स्टेंशन()

किसी ऑब्जेक्ट के किसी भी विस्तार को रोकता है।

let obj = {};
Object.preventExtensions(obj);
obj.newProp = 'test'; // Throws an error in strict mode
console.log(obj.newProp); // Output: undefined

19. ऑब्जेक्ट.सील()

किसी ऑब्जेक्ट को सील करता है, नई संपत्तियों को इसमें जोड़ने से रोकता है और सभी मौजूदा संपत्तियों को गैर-कॉन्फ़िगर करने योग्य के रूप में चिह्नित करता है। वर्तमान संपत्तियों के मूल्य तब तक बदले जा सकते हैं जब तक वे लिखने योग्य हैं।

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

20. ऑब्जेक्ट.सेटप्रोटोटाइपऑफ()

किसी निर्दिष्ट ऑब्जेक्ट के प्रोटोटाइप (यानी, आंतरिक [[प्रोटोटाइप]] प्रॉपर्टी) को किसी अन्य ऑब्जेक्ट या शून्य पर सेट करता है।

let proto = {};
let obj = {};
Object.setPrototypeOf(obj, proto);
console.log(Object.getPrototypeOf(obj) === proto); // Output: true

21. वस्तु.मूल्य()

किसी दिए गए ऑब्जेक्ट के स्वयं के गणना योग्य संपत्ति मूल्यों की एक सरणी लौटाता है, उसी क्रम में जैसे कि लूप में प्रदान किया गया है।

let obj = {a: 1, b: 2, c: 3};
console.log(Object.values(obj)); // Output: [1, 2, 3]

व्यावहारिक उदाहरण

उदाहरण 1: किसी वस्तु का क्लोन बनाना

किसी ऑब्जेक्ट को क्लोन करने के लिए object.assign() का उपयोग करना।

let obj = {a: 1, b: 2};
let clone = Object.assign({}, obj);
console.log(clone); // Output: {a: 1, b: 2}

उदाहरण 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}

उदाहरण 3: एक निर्दिष्ट प्रोटोटाइप के साथ एक वस्तु बनाना

निर्दिष्ट प्रोटोटाइप के साथ ऑब्जेक्ट बनाने के लिए ऑब्जेक्ट.क्रिएट() का उपयोग करना।

let proto = {greet: function() { console.log("Hello!"); }};
let obj = Object.create(proto);
obj.greet(); // Output: Hello!

उदाहरण 4: अपरिवर्तनीय गुणों को परिभाषित करना

अपरिवर्तनीय गुणों को परिभाषित करने के लिए 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

उदाहरण 5: किसी वस्तु को एक सारणी में परिवर्तित करना

किसी ऑब्जेक्ट को कुंजी-मूल्य जोड़े की सरणी में परिवर्तित करने के लिए ऑब्जेक्ट.entries() का उपयोग करना।

let obj = {a: 1, b: 2, c: 3};
let entries = Object.entries(obj);
console.log(entries); // Output: [['a', 1], ['b', 2], ['c', 3]]

निष्कर्ष

ऑब्जेक्ट जावास्क्रिप्ट का एक मुख्य घटक हैं, जो डेटा को प्रबंधित और हेरफेर करने का एक लचीला तरीका प्रदान करता है। ऑब्जेक्ट फ़ंक्शंस में महारत हासिल करके, आप जटिल ऑपरेशन आसानी से कर सकते हैं और अधिक कुशल और रखरखाव योग्य कोड लिख सकते हैं। इस व्यापक मार्गदर्शिका में विस्तृत उदाहरणों और स्पष्टीकरणों के साथ जावास्क्रिप्ट में सबसे महत्वपूर्ण ऑब्जेक्ट फ़ंक्शंस को शामिल किया गया है। इन फ़ंक्शंस का उपयोग करने का अभ्यास करें और अपनी समझ को गहरा करने और अपने कोडिंग कौशल को बढ़ाने के लिए विभिन्न उपयोग मामलों के साथ प्रयोग करें।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/imsushant12/a-guide-to-master-javascript-objects-362b?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3