जावास्क्रिप्ट कंस्ट्रक्टर फंक्शन (उदाहरणों के साथ)

इस ट्यूटोरियल में, आप उदाहरणों की मदद से जावास्क्रिप्ट कंस्ट्रक्टर फंक्शन के बारे में जानेंगे।

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

 // constructor function function Person () ( this.name = 'John', this.age = 23 ) // create an object const person = new Person();

उपरोक्त उदाहरण में, function Person()एक ऑब्जेक्ट कंस्ट्रक्टर फ़ंक्शन है।

कंस्ट्रक्टर फ़ंक्शन से ऑब्जेक्ट बनाने के लिए, हम newकीवर्ड का उपयोग करते हैं ।

नोट : अपने कंस्ट्रक्टर फ़ंक्शन के पहले अक्षर को कैपिटलाइज़ करना एक अच्छा अभ्यास माना जाता है।

कंस्ट्रक्टर फ़ंक्शन के साथ कई ऑब्जेक्ट बनाएं

जावास्क्रिप्ट में, आप एक कंस्ट्रक्टर फ़ंक्शन से कई ऑब्जेक्ट बना सकते हैं। उदाहरण के लिए,

 // constructor function function Person () ( this.name = 'John', this.age = 23, this.greet = function () ( console.log('hello'); ) ) // create objects const person1 = new Person(); const person2 = new Person(); // access properties console.log(person1.name); // John console.log(person2.name); // John

उपरोक्त प्रोग्राम में, एक ही कंस्ट्रक्टर फ़ंक्शन का उपयोग करके दो ऑब्जेक्ट बनाए जाते हैं।

जावास्क्रिप्ट इस खोजशब्द

जावास्क्रिप्ट में, जब thisकीवर्ड का उपयोग एक कंस्ट्रक्टर फ़ंक्शन में किया जाता है, thisतो ऑब्जेक्ट को बनाए जाने पर ऑब्जेक्ट को संदर्भित करता है। उदाहरण के लिए,

 // constructor function function Person () ( this.name = 'John', ) // create object const person1 = new Person(); // access properties console.log(person1.name); // John

इसलिए, जब कोई वस्तु गुणों तक पहुंचती है, तो वह सीधे संपत्ति तक पहुंच सकती है person1.name

जावास्क्रिप्ट कंस्ट्रक्टर फंक्शन पैरामीटर

आप मापदंडों के साथ एक निर्माता फ़ंक्शन भी बना सकते हैं। उदाहरण के लिए,

 // constructor function function Person (person_name, person_age, person_gender) ( // assigning parameter values to the calling object this.name = person_name, this.age = person_age, this.gender = person_gender, this.greet = function () ( return ('Hi' + ' ' + this.name); ) ) // creating objects const person1 = new Person('John', 23, 'male'); const person2 = new Person('Sam', 25, 'female'); // accessing properties console.log(person1.name); // "John" console.log(person2.name); // "Sam" 

उपरोक्त उदाहरण में, हमने ऑब्जेक्ट के निर्माण के दौरान कंस्ट्रक्टर फ़ंक्शन के लिए तर्क पारित किए हैं।

 const person1 = new Person('John', 23, 'male'); const person2 = new Person('Sam', 25, 'male');

यह प्रत्येक वस्तु को अलग-अलग गुण रखने की अनुमति देता है। जैसा कि उपर दिखाया गया है,

console.log(person1.name); जॉन देता है

console.log(person2.name); सैम देता है

ऑब्जेक्ट बनाएँ: कंस्ट्रक्टर फ़ंक्शन बनाम ऑब्जेक्ट लिटरल

  • ऑब्जेक्ट लिटरल का इस्तेमाल आमतौर पर सिंगल ऑब्जेक्ट बनाने के लिए किया जाता है। यदि आप कई ऑब्जेक्ट बनाना चाहते हैं, तो कंस्ट्रक्टर फ़ंक्शन उपयोगी है। उदाहरण के लिए,
 // using object literal let person = ( name: 'Sam' )
 // using constructor function function Person () ( this.name = 'Sam' ) let person1 = new Person(); let person2 = new Person();
  • कंस्ट्रक्टर फ़ंक्शन से बनाई गई प्रत्येक ऑब्जेक्ट अद्वितीय है। आपके पास कंस्ट्रक्टर फ़ंक्शन के समान गुण हो सकते हैं या किसी विशेष ऑब्जेक्ट में एक नई संपत्ति जोड़ सकते हैं। उदाहरण के लिए,
 // using constructor function function Person () ( this.name = 'Sam' ) let person1 = new Person(); let person2 = new Person(); // adding new property to person1 person1.age = 20;

अब यह ageसंपत्ति person1ऑब्जेक्ट के लिए अद्वितीय है और ऑब्जेक्ट के लिए उपलब्ध नहीं है person2

हालाँकि, यदि कोई ऑब्जेक्ट ऑब्जेक्ट शाब्दिक के साथ बनाया गया है, और यदि किसी चर को उस ऑब्जेक्ट मान से परिभाषित किया गया है, तो चर मान में कोई भी परिवर्तन मूल ऑब्जेक्ट को बदल देगा। उदाहरण के लिए,

 // using object lateral let person = ( name: 'Sam' ) console.log(person.name); // Sam let student = person; // changes the property of an object student.name = 'John'; // changes the origins object property console.log(person.name); // John

जब किसी ऑब्जेक्ट को ऑब्जेक्ट शाब्दिक के साथ बनाया जाता है, तो उस ऑब्जेक्ट से प्राप्त कोई भी ऑब्जेक्ट वेरिएबल मूल ऑब्जेक्ट के क्लोन के रूप में कार्य करेगा। इसलिए, आपके द्वारा एक वस्तु में किया गया कोई भी परिवर्तन दूसरी वस्तु में भी दिखाई देगा।

एक वस्तु में गुण और तरीके जोड़ना

आप इस तरह से किसी ऑब्जेक्ट में गुण या तरीके जोड़ सकते हैं:

 // constructor function function Person () ( this.name = 'John', this.age = 23 ) // creating objects let person1 = new Person(); let person2 = new Person(); // adding property to person1 object person1.gender = 'male'; // adding method to person1 object person1.greet = function () ( console.log('hello'); ) person1.greet(); // hello // Error code // person2 doesn't have greet() method person2.greet();

आउटपुट

 हैलो अनकैप्ड TypeError: person2.greet एक फ़ंक्शन नहीं है

उपरोक्त उदाहरण में, ऑब्जेक्ट में एक नई संपत्ति genderऔर एक नई विधि greet()जोड़ी जाती है person1

हालाँकि, यह नई संपत्ति और विधि केवल करने के लिए जोड़ा गया है person1। आप पहुँच genderया greet()से नहीं कर सकते person2। इसलिए जब हम एक्सेस करने की कोशिश करते हैं तो प्रोग्राम त्रुटि देता हैperson2.greet();

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

आप एक प्रोटोटाइप का उपयोग करके एक कंस्ट्रक्टर फ़ंक्शन में गुण और विधियाँ भी जोड़ सकते हैं । उदाहरण के लिए,

 // constructor function function Person () ( this.name = 'John', this.age = 23 ) // creating objects let person1 = new Person(); let person2 = new Person(); // adding new property to constructor function Person.prototype.gender = 'Male'; console.log(person1.gender); // Male console.log(person2.gender); // Male

प्रोटोटाइप के बारे में अधिक जानने के लिए, जावास्क्रिप्ट प्रोटोटाइप पर जाएँ।

जावास्क्रिप्ट में निर्मित कंस्ट्रक्टर

जावास्क्रिप्ट में बिल्ट-इन कंस्ट्रक्टर भी हैं। उनमें से कुछ हैं:

 let a = new Object(); // A new Object object let b = new String(); // A new String object let c = new Number(); // A new Number object let d = new Boolean(); // A new Boolean object

जावास्क्रिप्ट में, स्ट्रिंग को ऑब्जेक्ट्स के रूप में बनाया जा सकता है:

 const name = new String ('John'); console.log(name); // "John"

जावास्क्रिप्ट में, संख्याओं को वस्तुओं के रूप में बनाया जा सकता है:

 const number = new Number (57); console.log(number); // 57

जावास्क्रिप्ट में, बूलियन को वस्तुओं के रूप में बनाया जा सकता है:

 const count = new Boolean(true); console.log(count); // true

नोट : यह आदिम डेटा प्रकारों का उपयोग करने और उन्हें सामान्य तरीके से बनाने की सिफारिश की जाती है, जैसे कि const name = 'John';, const number = 57;औरconst count = true;

आपको स्ट्रिंग, संख्या और बूलियन मान को ऑब्जेक्ट के रूप में घोषित नहीं करना चाहिए क्योंकि वे प्रोग्राम को धीमा कर देते हैं।

नोट : जावास्क्रिप्ट में, कीवर्ड classES6 (ES2015) में पेश किया गया था जो हमें ऑब्जेक्ट बनाने की अनुमति भी देता है। कक्षाएं जावास्क्रिप्ट में निर्माण कार्यों के समान हैं। अधिक जानने के लिए, जावास्क्रिप्ट कक्षाओं पर जाएँ।

दिलचस्प लेख...