Hallo zusammen,
ich versuche gerade die Vererbung über die Konstruktor Funktionen abzubilden. Leider funktioniert das ganze nicht da die VM immer den Fehler bringt:
Hier mal der Quellcode:
Shape ist aber doch eine Funktion wieso kommt dieser Fehler wenn man
const tri = new Triangle(1,2,3); eingibt?
Weiß das jemand und kann es mir erklären?
FireFox gibt mir zur Hilfe dieses Beispiel:
Dort findet er "komischerweise" die .call Methode.
ich versuche gerade die Vererbung über die Konstruktor Funktionen abzubilden. Leider funktioniert das ganze nicht da die VM immer den Fehler bringt:
error: TypeError: Shape.call is not a function
Hier mal der Quellcode:
Javascript:
function Shape() {
this.type = 'Shape';
}
function Triangle(a, b, c) {
Shape.call(this);
this.type = 'Triangle';
this.a = a;
this.b = b;
this.c = c;
}
Shape.prototype.getShape = function() {
return `Das ist eine ${this.type}`;
}
Triangle.prototype.circumference = function() {
return this.a + this.b + this.c;
}
Triangle.prototype = Shape;
Triangle.prototype.__proto__ = Shape.prototype;
function GLTriangle(a, c) {
Triangle.call(this, a, a, c);
this.type = 'GLTriangle';
}
GLTriangle.prototype.set = function(a) {
this.a = a;
}
Shape ist aber doch eine Funktion wieso kommt dieser Fehler wenn man
const tri = new Triangle(1,2,3); eingibt?
Weiß das jemand und kann es mir erklären?
FireFox gibt mir zur Hilfe dieses Beispiel:
Javascript:
function Product(name, price) {
this.name = name;
this.price = price;
}
function Food(name, price) {
Product.call(this, name, price);
this.category = 'food';
}
console.log(new Food('cheese', 5).name);
Dort findet er "komischerweise" die .call Methode.