Sto scrivendo una gerarchia di oggetti in JavaScript, mi piacerebbe chiamare un metodo sul genitore di un oggetto quando ho ombreggiato quel metodo nell'oggetto.Modo più semplice/migliore per chiamare il metodo di prototipo in ombra?
Es .:
var Base = function Base(msg) {
this.msg = msg;
}
Base.prototype.log = function(){
console.log("base log: " + this.msg);
}
var Sub = function Sub(msg) {
Base.call(this, msg);
}
Sub.prototype = Object.create(Base.prototype);
Sub.prototype.log = function() {
console.log("sub log");
this.__proto__.__proto__.log.call(this); // This works but __proto__
Object.getPrototypeOf(Object.getPrototypeOf(this)).log.call(this); // This works but is verbose
super.log(); // This doesn't work
}
var sub = new Sub('hi');
sub.log();
Vedi le tre linee nella parte inferiore della funzione Sub.prototype.log
- c'è un modo migliore per fare quello che sto cercando di fare lì?
La seconda linea è la migliore che ho potuto trovare ma è molto prolissa!
Sto votando per chiudere questa domanda come off-topic perché ritengo che questo appartenga a http://codereview.stackexchange.com – Dom
Forse, ma non penso di chiedere una recensione, sono mi chiedo se esiste un meccanismo linguistico o un pattern di cui non sono a conoscenza quale sia la soluzione migliore per quello che sto cercando di fare. Felice di essere corretto se lo stackoverflow non è il posto giusto per questo. – sync
Poiché la domanda è codificata come node.js, potresti anche utilizzare le classi es6. – hassansin