J'ai une « classe » Javascript défini comme ceci:Puis-je "étendre" une "classe" définie par une fermeture en Javascript?
var Welcomer = function(name) {
var pName = name;
var pMessage = function() {
return "Hi, " + pName + "!";
};
return {
sayHi: function() {
alert(pMessage());
}
};
};
new Welcomer('Sue').sayHi();
est-il un moyen de « sous-classe » Welcomer
de telle sorte que je puisse redéfinir les méthodes publiques et d'avoir accès aux méthodes privées et les variables? Ce qui suit me donne accès aux méthodes publiques, mais pas aux privés:
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();
Vous voudrez peut-être lire ce document [cet article] (http://mckoss.com/jscript/object.htm). –
Marquer cet article. Thx –