पर विधि कहा जाता है, मैं ऑब्जेक्ट उन्मुख कॉफ़ीस्क्रिप्ट का उपयोग करके एक नोड.जेएस अनुप्रयोग बना रहा हूं।कॉफ़ीस्क्रिप्ट: कक्षा के उदाहरण को गतिशील रूप से
class User extends RedisObject
जब मैं फोन User class
मैं चाहता हूँ पर find()
की तरह एक उपवर्ग है
class RedisObject
@find: (id, cb) ->
client.HGETALL "#{@className()}|#{id}", (err, obj) =>
unless err
cb(new RedisObject(obj, false))
यह User
का एक उदाहरण के बजाय पारित करने के लिए:
मैं की तरह एक स्थिर विधि के साथ एक super class
है कॉलबैक फ़ंक्शन पर RedisObject
का।
मैं विधि
@constructor.name
और eval()
का उपयोग का उपयोग कर इसे से एक उदाहरण उत्पन्न करने के लिए पर कहा जाता है वास्तविक वर्ग के वर्ग के नाम हो रही द्वारा यह एहसास करने की कोशिश की है - लेकिन समस्या यह है कि उपवर्ग होगा है superclass के भीतर से अपरिभाषित हो।
find
विधि द्वारा लौटाए गए विभिन्न प्रकार के उदाहरणों को प्राप्त करने के व्यवहार को मैं कैसे समझा सकता हूं, इस वर्ग के आधार पर प्रत्येक कक्षा में इसे ओवरराइड किए बिना, किस वर्ग पर इसे कॉल किया जाता है?
धन्यवाद! अच्छी तरह से काम। – Matthias
बीटीडब्ल्यू, "नया यह" दस्तावेज सुविधा नहीं है, मैं इसे कक्षा अनुभाग से नहीं ढूंढ सकता। यह वास्तव में उपयोगी है, इसे specced किया जाना चाहिए। – Ciantic