guardate un po' sto pezzo di codice ... e' il classico pattern per l'implementazione dell'eredita' classica in js. ho aggiunto anche un reference per poter risalire alla superclasse e recuperarne il codice da dentro metodi overridati della sottoclasse. che dite? ci vedete difetti?
si lo so che posso wrappare tutto dentro una funzione extend ma sono stato prolisso a posta per mettere le cose in chiaroCodice PHP:function Dad(n) {
var name = n;
this.getName = function () {
console.log(n)
}
this.setName = function (v) {
n = v;
}
};
Dad.prototype.foo = function () {
console.log("Dad's useless method set via prototype");
}
// #### accesso a una istanza di Dad (parent) ####
Dad.prototype.parent = new Dad("dafault name");
function Son(n) {
// IMPORTANTE: run Dad in the context of Son e gli passa n
Son.prototype.parent.constructor.call(this, n);
// estende le potenzialita' di Dad
this.shoutName = function () {
console.log(n.toUpperCase());
}
// override
this.getName = function () {
console.log("E mo' eseguo il codice nel metodo padre");
this.parent.getName();
}
}
Son.prototype = new Dad;
Son.prototype.constructor = Son;
any comments?
nOuuuu!

Rispondi quotando