जावास्क्रिप्ट में कक्षाएं और वस्तुओं का परिचय
अब हम जावास्क्रिप्ट में ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (OOP) का अध्ययन करेंगे। आइए एक वास्तविक जीवन का उदाहरण लेते हैं, और फिर इसे जावास्क्रिप्ट पर लागू करते हैं।
एक उदाहरण के रूप में, एक कार लेते हैं। इस में पहिए, रंग, बॉडी का प्रकार, इंजन की क्षमता आदि होते हैं। इसके अलावा, ड्राइवर इसे आदेश दे सकता है: आगे बढ़ो, रुको, दाएं मुड़ो, बाएं मुड़ो, आदि।
हम कह सकते हैं कि कारों का एक वर्ग (class) मौजूद है, जिसमें सामान्य गुण होते हैं (सभी के पास पहिए होते हैं और सभी को आदेश दिए जा सकते हैं)।
सड़क पर खड़ी एक विशिष्ट कार - इस वर्ग का एक प्रतिनिधि है, या, दूसरे शब्दों में, इस वर्ग की एक वस्तु (object) है। इस वर्ग की सभी वस्तुओं में गुण (properties) होते हैं: पहियों की संख्या, रंग, बॉडी का प्रकार और विधियाँ (methods): आगे बढ़ो, रुको, दाएं मुड़ो, बाएं मुड़ो।
दूसरे शब्दों में, वर्ग स्वयं एक खाका है, जिसके अनुसार कारखाने में कारें बनाई जाती हैं। वस्तु स्वयं वह मशीन है, जो इस खाके के अनुसार बनाई गई है।
जावास्क्रिप्ट में एक वर्ग कीवर्ड class का उपयोग करके
बनाया जाता है, जिसके बाद उस वर्ग का नाम आता है।
आइए एक वर्ग Car बनाएं:
class Car {
// यहाँ कोड है, यानी जावास्क्रिप्ट खाका कार का
}
अब हम अपने खाके में निर्दिष्ट करते हैं कि कोई भी कार, जो इस खाके के अनुसार बनाई गई है, उसमें रंग के लिए एक गुण और ईंधन की मात्रा के लिए एक गुण होगा।
इसके लिए वर्ग के अंदर गुण
color और गुण fuel लिखते हैं:
class Car {
color; // कार का रंग
fuel; // ईंधन की मात्रा
}
अब हम अपने वर्ग की विधियाँ बनाते हैं।
जावास्क्रिप्ट में विधियाँ सामान्य कार्यों (functions) के समान होती हैं,
केवल उन्हें कीवर्ड function के बिना घोषित किया जाता है।
जैसा कि पहले उल्लेख किया गया है, हमारी कार चल सकती है, मुड़ सकती है, रुक सकती है। आइए हमारे वर्ग में संबंधित विधियाँ बनाएं:
class Car {
color; // कार का रंग
fuel; // ईंधन की मात्रा
// आदेश चलो:
go() {
// कुछ जावास्क्रिप्ट कोड
}
// आदेश मुड़ो:
turn() {
// कुछ जावास्क्रिप्ट कोड
}
// आदेश रुको:
stop() {
// कुछ जावास्क्रिप्ट कोड
}
}
हमने आपके साथ मिलकर अपनी कार का खाका तैयार किया है। अब कारखाने में जाने और इस वर्ग की एक वस्तु (यानी एक विशिष्ट कार) बनाने की आवश्यकता है।
जावास्क्रिप्ट में यह कीवर्ड
new का उपयोग करके किया जाता है, जिसके बाद वर्ग का नाम लिखा जाता है:
new Car; // कारखाने को कार बनाने का आदेश देते हैं
हालाँकि, यदि केवल वर्ग की एक वस्तु बनाई जाए - तो इसका कोई परिणाम नहीं निकलेगा (यह ऐसा ही है, जैसे, उदाहरण के लिए, एक सरणी (array) घोषित करना और उसे कहीं भी न लिखना)। हमें इस वस्तु को संग्रहीत करने के लिए एक चर (variable) की आवश्यकता है।
मान लीजिए कि इस चर का नाम myCar है
- इसमें हमारे द्वारा बनाई गई वस्तु को लिखते हैं:
let myCar = new Car;
कार बनाने के बाद इसके गुणों तक पहुँचा जा सकता है। उन तक पहुँच एक डॉट (dot) के माध्यम से होती है। आइए सेट करें हमारी वस्तु के गुण:
let myCar = new Car; // कारखाने को कार बनाने का आदेश देते हैं
myCar.color = 'red'; // लाल रंग में रंगते हैं
myCar.fuel = 50; // ईंधन भरते हैं
बस, हमारी कार बन गई, रंग गई और ईंधन भर गई। अब हम इस वर्ग की विधियों के माध्यम से इसे आदेश दे सकते हैं।
विधियों तक पहुँच भी डॉट के माध्यम से होती है, लेकिन, गुण के विपरीत, विधि के नाम के बाद गोल कोष्ठक लिखे जाते हैं। आइए हम अपनी वस्तु को आदेश दें:
myCar.go();
myCar.turn();
myCar.stop();