मैं जावास्क्रिप्ट में कुछ क्लास पदानुक्रम तैयार कर रहा हूं। यह अभी तक ठीक काम करता है, लेकिन मैं यह नहीं देख सकता कि यह निर्धारित करने के लिए कि कोई ऑब्जेक्ट एक अभिभावक वर्ग का "उदाहरण" है या नहीं। उदाहरण:जावास्क्रिप्ट ओओपी, उदाहरण और बेस क्लास
function BaseObject(name){
this.name = name;
this.sayWhoAmI = function(){
console.log(this.name + ' is a Derivation1 : ' + (this instanceof Derivation1));
console.log(this.name + ' is a Derivation2 : ' + (this instanceof Derivation2));
console.log(this.name + ' is a BaseObject : ' + (this instanceof BaseObject));
};
}
function Derivation1(){
BaseObject.apply(this, ['first derivation']);
}
function Derivation2(){
BaseObject.apply(this, ['second derivation']);
}
var first = new Derivation1();
var second = new Derivation2();
first.sayWhoAmI();
लॉग यह:
first derivation is a Derivation1 : true
first derivation is a Derivation2 : false
first derivation is a BaseObject : false
जबकि second.sayWhoAmI();
लॉग यह:
second derivation is a Derivation1 : false
second derivation is a Derivation2 : true
second derivation is a BaseObject : false
मैं दोनों first
और second
वस्तु होना चाहिए की तरह महसूस कहते हैं कि वे BaseObject
के उदाहरण हैं।
मैं समझता हूं कि जावास्क्रिप्ट इसके लिए नहीं बनाया जा सकता है, लेकिन मुझे आश्चर्य है कि इसे प्राप्त करने का कोई तरीका है या नहीं।
केवल बुला 'Base.apply (...)' नहीं है सेटअप विरासत। आपको प्रोटोटाइप को ठीक से सेट करना होगा। देखें: http://jsfiddle.net/fkling/wJE6s/। स्पष्टीकरण के लिए इस प्रश्न को भी देखें: http: // stackoverflow।कॉम/प्रश्न/3145700/जावास्क्रिप्ट-विरासत-उदाहरण-काम नहीं कर रहे हैं? rq = 1 –
फ़ेलिक्स आपको इसे उत्तर के रूप में लिखना चाहिए, यही वही है जो मुझे चाहिए और आपका पहेली इसे प्रदर्शित करता है। किसी और को अपनी प्रतिष्ठा चुराओ मत! – Johnny5
सहमत हैं कि उन्हें एक जवाब जोड़ना चाहिए, लेकिन शायद वह अपने प्रतिनिधि को .01% तक बढ़ाने के बारे में चिंतित नहीं है! – jahroy