Kann ich eine durch Schließung definierte "Klasse" in Javascript "erweitern"?
Ich habe eine Javascript "Klasse" wie folgt definiert:
var Welcomer = function(name) {
var pName = name;
var pMessage = function() {
return "Hi, " + pName + "!";
};
return {
sayHi: function() {
alert(pMessage());
}
};
};
new Welcomer('Sue').sayHi();
Ist da ein Weg zur "Unterklasse"Welcomer
so, dass ich die öffentlichen Methoden neu definieren und auf die privaten Methoden und Variablen zugreifen kann? Das Folgende gibt mir Zugang zu den öffentlichen Methoden, aber nicht zu den privaten:
var UnhappyWelcomer = function(name) {
var pSadMessage = function() {
// won't work, b/c I don't have access to pMessage
return pMessage() + " Miserable day, innit?";
};
return {
sayHi: function() {
alert(pSadMessage());
}
};
};
UnhappyWelcomer.prototype = Welcomer(); // failed attempt at inheritance
new UnhappyWelcomer().sayHi();