Ich bin in der Suche nach Javascript Vererbung zum ersten Mal, und ich nicht in der Lage, es zur Arbeit zu bekommen, oder vielleicht verstehe ich es nicht richtig. So habe ich einige Code hier, lassen Sie uns einen Blick an ihm haben:wie JavaScript-Vererbung zu implementieren
<script language="javascript" type="text/javascript">
//object and prototype
function cat(name){//object constructor
this.name = name;//property
this.talk = function(){//method
console.log(this.name + " say meeow");
}
}
cat1 = new cat("Cat 1 Felix")
cat1.talk();
cat2 = new cat("cat 2 Joy")
cat2.talk()
//inheritance
function isleManCat(name){
cat.call(this,name)
this.feature = "no tail"
this.detail = function(){
console.log(this.name + " has " + this.feature);
}
}
isleManCat.prototype = new cat();
cat3 = new isleManCat("isle of Man cat")
cat3.talk();
cat3.detail();
</script>
So habe ich 2 Katzen hier Objekte und cat1 und cat2 druckt die erwarteten Ergebnisse:
Cat 1 Felix say meeow
cat 2 Joy say meeow
. Dann cat3 ist ein isleOfMan() Katze, die von Katze erben sollte(), und ich hätte gedacht, dass es den Namen Eigentum von Katze erben würde(), aber er druckt nicht definiert:
undefined say meeow
undefined has no tail
Kann mir jemand bitte lassen Sie wissen Warum funktioniert es nicht und was mache ich falsch? Ich verstehe das nicht. Dank
Welchen Namen erwarten Sie die Katze: Sie können Rest Parameter verwenden haben? – Amit
Sie haben zu Beginn nie einen Namen für Ihre 'isleManCat' angegeben. – RainingChain
'isleManCat()' muss den Konstruktor aufrufen, von dem er geerbt wurde. Es gibt Tausende Tutorials zur Vererbung in Javascript und Hunderte von Antworten zum selben Thema. Bitte lesen Sie und stellen Sie eine viel spezifischere Frage, wenn Sie nicht weiterkommen. Wir sind kein allgemeiner Lerndienst, wenn Sie keine eigenen Recherchen durchgeführt haben. Starten Sie beispielsweise [hier] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain). – jfriend00