Zum Beispiel haben wir bereits 3 "Klassen" (Funktionen): Obst < = Apple < = GreenApple. So erben Apple von Fruit und GreenApple von Apple. (Verwenden von Prototypen für Instanzen). Also wenn ich richtig verstehe: "fruit.prototype" ist ein Objekt, "apple.prototype" ist ein Obst und "greenApple.prototype" ist ein "Apple"? So , dies zu berücksichtigen, habe ich folgende Frage:Was bedeutet "Methode zum Prototyp hinzufügen"
was bedeutet "Apple.prototype" in "Apple.prototype.getInfo" ???:
function Apple (type) {
this.type = type;
this.color = "red";
}
Apple.prototype.getInfo = function() {
return this.color + ' ' + this.type + ' apple';
};
Auch für mich, die Apple-Prototyp ist eine Frucht (Apple.prototype == Fruit), aber im obigen Code sehen wir, dass es einen anderen Weg verwendet, was ist also Apple.prototype hier ??? Wenn wir neue Instanz von Apple bekommen.
var greenApple = new GreenApple('apple1');
und wenn es keine getInfo Methode in Greenapple-Klasse ist, wird es bei greenApple.prototype (Apple) aussehen, aber getInfo erklärte in Apple.prototype (was ist es) ??
Endlich: Was für einen Unterschied zwischen:
Apple.prototype.getInfo = function(){*_*}
und
Apple.getInfo = function() {*_*}
ja, gibt es nur Fehler Syntaxis, aber auch hier: Wenn Wir bekommen eine neue Instanz von Apple. var greenApple = neu GreenApple ('apple1'); welche Klasse erbt von Apple-Klasse und wenn es keine "getInfo" -Methode in GreenApple-Klasse gibt, wird es greenApple.prototype (Apple) sehen, aber GetInfo in ** Apple.prototype ** deklariert (was ist das) ?? –
Nein. 'GreenApple.prototype' ist eine Instanz von' Apple', nicht 'Apple' selbst. Es ist also nur ein Objekt, möglicherweise mit einigen Methoden oder Eigenschaften, die von "Apple.prototype" erbt. – Oriol
aber wie kann es von "Apple.prototype" erben, während "Apple.prototype === Fruit"? Ich dachte, es würde direkt von 'Apple' geerbt. Da liegt meine Frage: Was genau ist "Apple.prototype"? Ist es 'Fruit' oder etwas anderes? ** –