जावास्क्रिप्ट ऑब्जेक्ट कन्स्ट्रक्टर

उदाहरण

function Person(first, last, age, eye) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eye;
}

अपने आप प्रयास करें

कंस्ट्रक्टर फ़ंक्शन को बड़े पदवी से नामित करना एक अच्छी आदत है।

ऑब्जैक्ट टाइप (ब्लूप्रिंट) (क्लास)

पिछले अध्याय का उदाहरण सीमित है। वे केवल एक अकेला ऑब्जैक्ट बनाते हैं।

हमें कभी-कभी कई 'टाइप' के ऑब्जैक्ट का 'ब्लूप्रिंट

एक 'ऑब्जैक्ट टाइप' (ब्लूप्रिंट) बनाने का एक तरीका हैऑब्जैक्ट का कंस्ट्रक्टर फ़ंक्शन

उपरोक्त उदाहरण मेंfunction Person(first, last, age, eye) { यही ऑब्जैक्ट का कंस्ट्रक्टर फ़ंक्शन है।

द्वारा नया कोई शब्द कंस्ट्रक्टर फ़ंक्शन को बुलाने से समान प्रकार के ऑब्जैक्ट का निर्माण कर सकता है:

var myFather = new Person("Bill", "Gates", 62, "blue");
var myMother = new Person("Steve", "Jobs", 56, "green");

अपने आप प्रयास करें

this कोई शब्द

जेसक्रिप्ट में this की वस्तु है कोड का 'मालिक'।

this का मूल्य, ऑब्जैक्ट का उपयोग करते समय, ऑब्जैक्ट कोई खुद ही है।

कंस्ट्रक्टर फ़ंक्शन मेंthis इसका मूल्य नहीं है। यह नए ऑब्जैक्ट के लिए प्रतिकृति है। जब एक नया ऑब्जैक्ट बनाया जाता है, तो this का मूल्य इस नए ऑब्जैक्ट का बन जाएगा।

ध्यान दें this यह नहीं कि एक वेरियेबल है। यह एक कीवर्ड है। आप this के मान को बदल नहीं सकते।

ऑब्जैक्ट को अटिबंध जोड़ना

मौजूदा ऑब्जैक्ट को नई अटिबंध जोड़ना बहुत सरल है:

उदाहरण

myFather.nationality = "English";

अपने आप प्रयास करें

नई अटिबंध myFather में जोड़ी गई है। नहीं कि myMother या किसी अन्य person ऑब्जैक्ट में。

ऑब्जैक्ट को विधि जोड़ना

मौजूदा ऑब्जैक्ट को नई विधि जोड़ना बहुत सरल है:

उदाहरण

myFather.name = function () {
    return this.firstName + " " + this.lastName;
};

अपने आप प्रयास करें

नई विधि myFather में जोड़ी गई है। नहीं कि myMother या किसी अन्य person ऑब्जैक्ट में。

निर्माण फ़ंक्शन को अटिबंध जोड़ना

एक मौजूदा ऑब्जैक्ट को नई अटिबंध जोड़ने से अलग, आप ऑब्जैक्ट के निर्माण फ़ंक्शन को नई अटिबंध जोड़ नहीं सकते:

उदाहरण

Person.nationality = "English";

अपने आप प्रयास करें

यदि आप निर्माण फ़ंक्शन को नई अटिबंध जोड़ना चाहते हैं, तो आपको निर्माण फ़ंक्शन में जोड़ना होता है:

उदाहरण

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.nationality = "English";
}

अपने आप प्रयास करें

इस प्रकार ऑब्जैक्ट के अटिबंध को डिफ़ॉल्ट मान दिया जा सकता है。

निर्माण फ़ंक्शन को विधि जोड़ना

आपके निर्माण फ़ंक्शन भी विधियाँ निर्धारित कर सकते हैं:

उदाहरण

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.name = function() {return this.firstName + " " + this.lastName;};
}

अपने आप प्रयास करें

एक मौजूदा ऑब्जैक्ट को नई विधि जोड़ने से अलग, आप ऑब्जैक्ट के निर्माण फ़ंक्शन को नई विधि जोड़ नहीं सकते।

कानून के अनुसार निर्माण फ़ंक्शन के अंदर एक ऑब्जैक्ट को एक नई विधि जोड़ना होता है:

उदाहरण

function Person(firstName, lastName, age, eyeColor) {
    this.firstName = firstName;  
    this.lastName = lastName;
    this.age = age;
    this.eyeColor = eyeColor;
    this.changeName = function (name) {
        this.lastName = name;
    };
}

changeName() फ़ंक्शन name को person के lastName अटिबंध को आवंटित करता है。

अब आप इसे प्रयोग कर सकते हैं:

myMother.changeName("Jobs");

अपने आप प्रयास करें

द्वारा myMother बदले thisजाने के लिए कि JavaScript जो person को संसाधित कर रहा है।

इंटीग्रेटेड JavaScript बनाने के उपकरण

JavaScript मूल ऑब्जैक्ट के लिए बनाने के लिए बनाने के उपकरण प्रदान करता है:

उदाहरण

var x1 = new Object();    // एक नया Object ऑब्जैक्ट
var x2 = new String();    // एक नया String ऑब्जैक्ट
var x3 = new Number();    // एक नया Number ऑब्जैक्ट
var x4 = new Boolean();   // एक नया Boolean ऑब्जैक्ट
var x5 = new Array();     // एक नया Array ऑब्जैक्ट
var x6 = new RegExp();    // एक नया RegExp ऑब्जैक्ट
var x7 = new Function();  // एक नया Function ऑब्जैक्ट
var x8 = new Date();      // एक नया Date ऑब्जैक्ट

अपने आप प्रयास करें

Math() ऑब्जैक्ट इस श्रेणी में नहीं है। Math एक वैश्विक ऑब्जैक्ट है।नया मुख्य शब्द Math के लिए नहीं उपयोग किये जा सकते हैं。

क्या आप जानते हैं?

जैसा कि ऊपर देखा गया है, JavaScript मूल डाटा प्रकार भाषा, संख्या और बॉलीन के ऑब्जैक्ट संस्करण प्रदान करता है। लेकिन कोई कारण नहीं है कि जटिल ऑब्जैक्ट बनाया जाए। मूल मूल्यों को तेजी से चलाया जाता है!

कृपया ऑब्जैक्ट लिटेरल का उपयोग करें {} बदले new Object()

कृपया स्ट्रिंग लिटेरल का उपयोग करें "" बदले new String()

कृपया नंबर लिटेरल के बदले में उपयोग करें Number()

कृपया बॉलीन लिटेरल के बदले में उपयोग करें new Boolean()

कृपया अर्रे लिटेरल का उपयोग करें [] बदले new Array()

कृपया पैटर्न लिटेरल के बदले में उपयोग करें new RexExp()

कृपया फ़ंक्शन एक्सप्रेशन का उपयोग करें () {} बदले new Function()

उदाहरण

var x1 = {};            // नया ऑब्जैक्ट
var x2 = "";            // नया मूल स्ट्रिंग
var x3 = 0;             // नया मूल संख्या
var x4 = false;         // नया मूल लॉजिकल मूल्य
var x5 = [];            // नया एलिमेंट्री ऑब्जेक्ट
var x6 = /()/           // नया रेगुलर एक्सप्रेशन ऑब्जेक्ट
var x7 = function(){};  // नया फ़ंक्शन ऑब्जेक्ट

अपने आप प्रयास करें

स्ट्रिंग ऑब्जेक्ट

सामान्यतया, स्ट्रिंग को आधारभूत मूल्य के रूप में बनाया जाता है: var firstName = "Bill"

लेकिन इसके स्थान पर भी इस्तेमाल किया जा सकता है नया कृपया स्ट्रिंग ऑब्जेक्ट बनाने के लिए इस्तेमाल करें: var firstName = new String("Bill")

कृपया JS स्ट्रिंगइस चैप्टर में सीखें कि आपको स्ट्रिंग को ऑब्जेक्ट के रूप में बनाना नहीं चाहिए

न्यूमेरिक ऑब्जेक्ट

सामान्यतया, न्यूमेरिक को आधारभूत मूल्य के रूप में बनाया जाता है: var x = 456

लेकिन इसके स्थान पर भी इस्तेमाल किया जा सकता है नया कृपया न्यूमेरिक ऑब्जेक्ट बनाने के लिए इस्तेमाल करें: var x = new Number(456)

कृपया JS न्यूमेरिकइस चैप्टर में सीखें कि आपको न्यूमेरिक को ऑब्जेक्ट के रूप में बनाना नहीं चाहिए

बॉलीन ऑब्जेक्ट

सामान्यतया, लॉजिकल वैल्यू को आधारभूत मूल्य के रूप में बनाया जाता है: var x = false

लेकिन इसके स्थान पर भी इस्तेमाल किया जा सकता है नया कृपया लॉजिकल ऑब्जेक्ट बनाने के लिए इस्तेमाल करें: var x = new Boolean(false)

कृपया JS लॉजिकइस चैप्टर में सीखें कि आपको लॉजिकल वैल्यू को ऑब्जेक्ट के रूप में बनाना नहीं चाहिए