Ich lese ein Buch über OOP Javascript und blieb auf einem der Beispiele stecken.Prototyp Verwirrung: Elternprototyp Eigenschaft von Kind Prototyp betroffen
In der ersten Version des Beispielcodes wird eine neue Instanz der Shape
-Konstruktorfunktion erstellt, und die -Methode wird aufgerufen. Die -Methode gibt "Triangle" zurück, das die name
-Eigenschaft des Triangle
-Prototyps ist, obwohl "Shape" die name
-Eigenschaft des Shape
-Prototyps sein soll.
In der zweiten Version des Beispielcodes gibt die Methode "Shape" wie gewünscht zurück. Ich frage mich, wie die Änderungen in der zweiten Version des Codes einen Unterschied gemacht, weil es scheint, in beiden Versionen des Beispielcodes, der Triangle
Prototyp hält einen Verweis auf den Shape
Prototyp, so würde die Eigenschaft des Shape
Prototyp noch aktualisiert "Triangle" wird wegen Triangle.prototype.name = "Triangle";
ersten Version: jsfiddle
zweiter Version: jsfiddle
Wenn F() auf Shape.prototype- und Triangle.prototype-Referenzen F() verweist, verweist Triangle.prototype nicht auf Shape.prototype durch die transitive Eigenschaft? – user701510
neue F() und F.prototyp ist anders. –