अध्याय 16: ऑब्जेक्ट्स का परिचय (Introduction to Objects)

अध्याय 16: ऑब्जेक्ट्स का परिचय (Introduction to Objects)

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

उदाहरण (Examples):

let person = {
    firstName: "John",
    lastName: "Doe",
    age: 30,
    job: "Developer"
};

ऊपर दिए गए उदाहरण में, person ऑब्जेक्ट में चार प्रॉपर्टीज हैं: firstName, lastName, age, और job।

ऑब्जेक्ट प्रॉपर्टीज और मेथड्स (Object Properties and Methods)

प्रॉपर्टीज (Properties)

प्रॉपर्टीज ऑब्जेक्ट्स के डेटा को संग्रहीत करते हैं। प्रॉपर्टीज को ऑब्जेक्ट में key: value के रूप में परिभाषित किया जाता है।
उदाहरण (Examples):

let car = {
    brand: "Toyota",
    model: "Corolla",
    year: 2020
};

// Accessing properties
document.write("
Brand: " + car.brand + "

"); // Output: Brand: Toyota document.write("

Model: " + car["model"] + "

"); // Output: Model: Corolla // Modifying properties car.year = 2021; document.write("

Year: " + car.year + "

"); // Output: Year: 2021

मेथड्स (Methods)

मेथड्स ऑब्जेक्ट्स के फंक्शंस होते हैं। इन्हें ऑब्जेक्ट में फंक्शन के रूप में परिभाषित किया जाता है।

उदाहरण (Examples):

let person = {
    firstName: "John",
    lastName: "Doe",
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
};

// Accessing methods
document.write("
Full Name: " + person.fullName() + "

"); // Output: Full Name: John Doe

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

सामान्य जावा स्क्रिप्ट ऑब्जेक्ट मेथड्स (Common JavaScript Object Methods)

1. Object.keys()

सिंटैक्स:
Object.keys(obj)

पैरामीटर्स:
obj (आवश्यक): वह ऑब्जेक्ट जिसके कीज निकालने हैं।

रिटर्न वैल्यू:
यह एक एरे रिटर्न करता है जिसमें ऑब्जेक्ट के सभी एनेमरेबल कीज होते हैं।

उदाहरण (Example):

let person = {
    firstName: "John",
    lastName: "Doe",
    age: 30
};
let keys = Object.keys(person);
document.write("Keys: " + keys + ""); // Output: Keys: firstName,lastName,age

2. Object.values()

सिंटैक्स:
Object.values(obj)

पैरामीटर्स:
obj (आवश्यक): वह ऑब्जेक्ट जिसके वैल्यूज निकालने हैं।

रिटर्न वैल्यू:
यह एक एरे रिटर्न करता है जिसमें ऑब्जेक्ट के सभी एनेमरेबल वैल्यूज होते हैं।

उदाहरण (Example):

let person = {
    firstName: "John",
    lastName: "Doe",
    age: 30
};
let values = Object.values(person);
document.write("Values: " + values + ""); // Output: Values: John,Doe,30

3. Object.entries()

सिंटैक्स:
Object.entries(obj)

पैरामीटर्स:
obj (आवश्यक): वह ऑब्जेक्ट जिसके एंट्रीज निकालने हैं।

रिटर्न वैल्यू:
यह एक एरे रिटर्न करता है जिसमें ऑब्जेक्ट की सभी एनेमरेबल प्रॉपर्टीज की [key, value] जोड़ियाँ होती हैं।

उदाहरण (Example):

let person = {
    firstName: "John",
    lastName: "Doe",
    age: 30
};
let entries = Object.entries(person);
document.write("Entries: " + JSON.stringify(entries) + ""); // Output: Entries: [["firstName","John"],["lastName","Doe"],["age",30]]

4. Object.assign()

सिंटैक्स:
Object.assign(target, ...sources)

पैरामीटर्स:
target (आवश्यक): वह ऑब्जेक्ट जिसमें स्रोत ऑब्जेक्ट्स की प्रॉपर्टीज को कॉपी किया जाएगा।
…sources (आवश्यक): एक या अधिक स्रोत ऑब्जेक्ट्स जिनकी प्रॉपर्टीज को लक्ष्य ऑब्जेक्ट में कॉपी किया जाएगा।

रिटर्न वैल्यू:
यह अपडेटेड लक्ष्य ऑब्जेक्ट रिटर्न करता है।

उदाहरण (Example):

let target = { a: 1, b: 2 };
let source = { b: 4, c: 5 };
let returnedTarget = Object.assign(target, source);
document.write("Target: " + JSON.stringify(target) + ""); // Output: Target: {"a":1,"b":4,"c":5}

5. Object.freeze()

सिंटैक्स:
Object.freeze(obj)

पैरामीटर्स:
obj (आवश्यक): वह ऑब्जेक्ट जिसे फ्रीज किया जाएगा।

रिटर्न वैल्यू:
यह फ्रीज किया गया ऑब्जेक्ट रिटर्न करता है।

उदाहरण (Example):

let person = {
    firstName: "John",
    lastName: "Doe",
    age: 30
};

Object.freeze(person);
person.age = 35; // यह बदलाव नहीं होगा क्योंकि ऑब्जेक्ट फ्रीज किया गया है

document.write("Age: " + person.age + ""); // Output: Age: 30

6. Object.seal()

सिंटैक्स:
Object.seal(obj)

पैरामीटर्स:
obj (आवश्यक): वह ऑब्जेक्ट जिसे सील किया जाएगा।

रिटर्न वैल्यू:
यह सील किया गया ऑब्जेक्ट रिटर्न करता है।

उदाहरण (Example):

let person = {
    firstName: "John",
    lastName: "Doe",
    age: 30
};

Object.seal(person);
person.age = 35; // यह बदलाव होगा क्योंकि प्रॉपर्टीज बदली जा सकती हैं
delete person.lastName; // यह बदलाव नहीं होगा क्योंकि प्रॉपर्टीज डिलीट नहीं की जा सकतीं

document.write("Age: " + person.age + ""); // Output: Age: 35 
document.write("Last Name: " + person.lastName + ""); // Output: Last Name: Doe

7. Object.create()

सिंटैक्स:
Object.create(proto, [propertiesObject])

पैरामीटर्स:
proto (आवश्यक): नया ऑब्जेक्ट का प्रोटोटाइप ऑब्जेक्ट।
propertiesObject (वैकल्पिक): प्रॉपर्टीज डेस्क्रिप्टर्स का ऑब्जेक्ट।

रिटर्न वैल्यू:
यह एक नया ऑब्जेक्ट रिटर्न करता है।

उदाहरण (Example):

let person = {
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
};

let john = Object.create(person);
john.firstName = "John";
john.lastName = "Doe";

document.write("Full Name: " + john.fullName() + ""); // Output: Full Name: John Doe

जावास्क्रिप्ट ऑब्जेक्ट से प्रॉपर्टी को कैसे हटाएं?

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

delete ऑपरेटर का उपयोग

delete ऑपरेटर का उपयोग करना बहुत आसान है। आइए इसे एक उदाहरण के साथ समझते हैं:

let person = {
    name: "John",
    age: 30,
    occupation: "Engineer"
};

// 'age' प्रॉपर्टी को ऑब्जेक्ट से हटाना
delete person.age;

console.log(person);

उदाहरण का परिणाम:

{
    name: "John",
    occupation: "Engineer"
}

इस उदाहरण में, delete person.age; का उपयोग करके age प्रॉपर्टी को ऑब्जेक्ट से हटा दिया गया है। अब person ऑब्जेक्ट में केवल name और occupation प्रॉपर्टीज़ ही बची हैं।

महत्वपूर्ण बातें:

  1. delete ऑपरेटर केवल ऑब्जेक्ट की प्रॉपर्टीज़ पर कार्य करता है:
    • delete ऑपरेटर किसी ऑब्जेक्ट की प्रॉपर्टी को हटा सकता है, लेकिन यह ऑब्जेक्ट के अन्य हिस्सों (जैसे वेरिएबल्स) पर काम नहीं करता।
  2. हटाई गई प्रॉपर्टी undefined नहीं होती है, बल्कि पूरी तरह से हट जाती है:
    • प्रॉपर्टी को हटाने के बाद वह ऑब्जेक्ट में बिल्कुल भी नहीं रहती है, यानी वह undefined भी नहीं होगी। यदि आप उस प्रॉपर्टी को एक्सेस करने की कोशिश करेंगे, तो यह undefined लौटाएगा, क्योंकि वह प्रॉपर्टी ऑब्जेक्ट का हिस्सा ही नहीं होगी।
  3. delete ऑपरेटर का उपयोग नॉन-कॉन्फ़िगरेबल प्रॉपर्टीज़ पर नहीं किया जा सकता:
    • यदि कोई प्रॉपर्टी नॉन-कॉन्फ़िगरेबल है (जैसे कुछ डिफ़ॉल्ट प्रॉपर्टीज़), तो उसे delete ऑपरेटर के द्वारा हटाया नहीं जा सकता। ऐसे मामलों में delete ऑपरेटर विफल हो जाएगा।

delete ऑपरेटर के अलावा अन्य तरीके (प्रत्यक्ष रूप से नहीं हटाना):

यदि आप प्रॉपर्टी को हटाना नहीं चाहते, बल्कि उसकी वैल्यू को undefined या null सेट करना चाहते हैं, तो आप निम्न तरीके अपना सकते हैं:

person.age = undefined; // प्रॉपर्टी मौजूद रहेगी, लेकिन इसकी वैल्यू undefined होगी
person.occupation = null; // प्रॉपर्टी मौजूद रहेगी, लेकिन इसकी वैल्यू null होगी


Index