मैंने पिछले कुछ घंटों में अपनी समस्या का हल ढूंढने की कोशिश की है लेकिन यह निराशाजनक प्रतीत होता है।जावास्क्रिप्ट में बाल वर्ग से अभिभावक विधि को कैसे कॉल करें?
मूल रूप से मुझे यह जानने की ज़रूरत है कि एक बाल वर्ग से अभिभावक विधि को कैसे कॉल करें। सभी चीजें जो मैंने अभी तक कोशिश की है, वे या तो काम नहीं कर रहे हैं या माता-पिता विधि को ओवर-लेखन नहीं कर रहे हैं।
मैं जावास्क्रिप्ट में OOP स्थापित करने के लिए निम्न कोड का उपयोग कर रहा:
// SET UP OOP
// surrogate constructor (empty function)
function surrogateCtor() {}
function extend(base, sub) {
// copy the prototype from the base to setup inheritance
surrogateCtor.prototype = base.prototype;
sub.prototype = new surrogateCtor();
sub.prototype.constructor = sub;
}
// parent class
function ParentObject(name) {
this.name = name;
}
// parent's methods
ParentObject.prototype = {
myMethod: function(arg) {
this.name = arg;
}
}
// child
function ChildObject(name) {
// call the parent's constructor
ParentObject.call(this, name);
this.myMethod = function(arg) {
// HOW DO I CALL THE PARENT METHOD HERE?
// do stuff
}
}
// setup the prototype chain
extend(ParentObject, ChildObject);
मैं माता पिता की विधि पहले फोन और उसके बाद बच्चे कक्षा में इसे करने के लिए कुछ और सामान जोड़ने की जरूरत है।
अधिकांश ओओपी भाषाओं में जो parent.myMethod()
पर कॉल करने जितना आसान होगा, लेकिन मैं वास्तव में यह समझ नहीं पा रहा हूं कि यह जावास्क्रिप्ट में कैसे किया गया।
किसी भी मदद की बहुत सराहना की है, धन्यवाद!
आप वर्तमान उदाहरण के संदर्भ में यह कॉल करना चाहते हैं, तो आप) 'क्या करना ParentClass.prototype.myMethod.apply (है) या' ParentClass.prototype.myMethod.call (', जैसे आप करते हैं आपके कन्स्ट्रक्टर के साथ। – JMM
अगर आप तर्कों के साथ कॉल करना चाहते हैं तो बस इसमें शामिल होने के बाद, वे लागू या कॉल फ़ंक्शन ('ParentClass.prototype.myMethod.call (यह, arg1, arg2, arg3 ...) के अंदर जाते हैं; ') –
मैं नहीं करता समझना। अगर मैं ParentClass.prototype.myMethod.call (यह) को कॉल करता हूं; ChildObject के myMethod से, मुझे एक त्रुटि मिली है "Uncaught TypeError: अपरिभाषित की संपत्ति 'कॉल' नहीं पढ़ सकता है। – zhekaus