Ich Prototyp Standalone-Klasse Vererbung: https://github.com/Jakobo/PTClassKlassenvererbung mit Klasse Prototyp-Schnittstelle
Und ich habe die folgenden Klassen:
App.hello = Class.create({
initialize: function(args) {
this.name = args.name
},
sayHello: function() {
console.log('Hello, ' + this.name);
},
sayGoodbye: function() {
console.log('Goodbye, ' + this.name);
}
});
App.yo = Class.create(App.hello, {
initialize: function($super) {
$super();
},
sayHello: function() {
console.log('Yo, ' + this.name);
}
});
Wo die Idee ist, dass yo
von hello
erben und überschreiben ihre sayHello
Methode. Aber auch in der Lage sein, die sayGoodbye
Methode in seiner Elternklasse aufzurufen.
So nenne ich sie etwa so:
var test = new App.hello({name: 'Cameron'});
test.sayHello();
test.sayGoodbye();
var test2 = new App.yo({name: 'Cameron'});
test2.sayHello();
test2.sayGoodbye();
Allerdings erhalte ich die Fehlermeldung, dass Uncaught TypeError: Cannot read property 'name' of undefined
für meine yo
Klasse.
Wie erben ich ordnungsgemäß von meiner Klasse hello
?
Gerade dort löschte: PrototypeJS des 'CLASS' Sachen veraltet ist, und PrototypeJS ist nicht wirklich viel in diesen Tagen gehalten. Sie sollten besser die neue "Klassen" -Syntax lernen, die in ES2015 eingeführt wurde (aka "ES6") und, wenn nötig, für ältere Browser transpilieren. –