2009-05-29 24 views
7

संभव डुप्लिकेट:
What's the best way to define a class in javascriptआप जावास्क्रिप्ट में कक्षा कैसे लिखते हैं?

आप जावास्क्रिप्ट में एक वर्ग के कैसे लिख सकता हूँ? क्या यह भी संभव है?

+0

Ack। "जावास्क्रिप्ट" को "जावास्क्रिप्ट" के बजाय "जावास्क्रिप्ट" में संपादित किया गया है। – Nosredna

+3

मैं jAvAsCrIpt पसंद करते हैं। यह सही तरीका है। –

उत्तर

2

जावास्क्रिप्ट डिफ़ॉल्ट रूप से प्रोटोटाइप-आधारित ओओ का उपयोग करता है।

हालांकि, यदि आप प्रोटोटाइप लाइब्रेरी का उपयोग कर रहे हैं, उदाहरण के लिए, आप Class.create() का उपयोग कर सकते हैं।

http://prototypejs.org/api/class/create

यह आप के बाद कि आप नए के साथ अपने उदाहरणों का दृष्टांत हैं, एक वर्ग बनाने के (या वारिस) के लिए दिया जाएगा।

अन्य पुस्तकालयों में शायद समान सुविधाएं हैं।

+0

कुछ करते हैं। jQuery ऐसा नहीं करता है, क्योंकि यह अपेक्षा करता है कि आपको कक्षाओं के मुकाबले jQuery संग्रहों से निपटने की अधिक संभावना होगी। – Nosredna

3
function Foo() { 
    // constructor 
} 

Foo.prototype.bar = function() { 
    // bar function within foo 
} 
+0

मुझे लगता है कि आपके पास 'बार' की शुरुआत में अतिरिक्त "फ़ंक्शन" है। :-) –

+0

हाँ। इसके अलावा, यह उल्लेख करना न भूलें कि आपको नए Foo() का उपयोग करना है। – alamar

+0

वूप्स तय, मैं जावास्क्रिप्ट ओओ लिखने के लिए उपयोग नहीं किया जाता है। –

0

यह "तरह का" संभव है। Prototype में जेएस में कक्षाएं लिखने में कुछ अंतर्निहित सहायता है। this thorough description पर एक नज़र डालें कि आप इसे कैसे कर सकते हैं।

var namedClass = Class.create({ 
    initialize: function(name) { 
     this.name = name; 
    } 

    getName: function() { 
     return this.name; 
    } 
}); 
var instance = new namedClass('Foobar'); 
0

JavaScript ऑब्जेक्ट, नहीं वर्गों पर आधारित है। यह प्रोटोटाइप विरासत का उपयोग करता है, शास्त्रीय विरासत नहीं।

जावास्क्रिप्ट लचीला और आसानी से एक्स्टेंसिबल है। नतीजतन, कई पुस्तकालय हैं जो जावास्क्रिप्ट में शास्त्रीय विरासत जोड़ते हैं। हालांकि, उनका उपयोग करके आप लेखन कोड को जोखिम देते हैं जो अधिकांश जावास्क्रिप्ट प्रोग्रामर का पालन करना मुश्किल है।

1

यदि आप प्रोटोटाइप या jQuery जैसी लाइब्रेरी का उपयोग करते हैं तो यह बहुत आसान है लेकिन विरासत का तरीका यह करना है।

function MyClass(){ 
} 
MyClass.prototype.aFunction(){ 
} 

var instance = new MyClass(); 
instance.aFunction(); 

आप यहाँ http://www.komodomedia.com/blog/2008/09/javascript-classes-for-n00bs/

7

खैर उस पर और अधिक पढ़ सकते हैं, जावास्क्रिप्ट एक प्रोटोटाइप आधारित भाषा है, यह कक्षाएं नहीं है, लेकिन आप शास्त्रीय विरासत, और वस्तु क्लोनिंग के माध्यम से अन्य व्यवहार पुन: उपयोग के पैटर्न हो सकता है और प्रोटोटाइप।

अनुशंसित लेख:

संबंधित मुद्दे