No estás sobrecargando ningun método, solamente llamás a otro método con el thisValue apuntando al objeto actual.
Te diria que esperes un poco antes de pensar en sobrecarga de metodos (que es posible, ej: multimethods).
La idea de llamar al constructor padre es simplemente no repetir la logica en ambos constructores, nada más que eso.
Podes sobreescribir los métodos que quieras, la precedencia en los prototipos es igual que en las clases de Java por ejemplo.
Código Javascript
:
Ver originalvar Person = function(name) {
this.name = name;
};
Pirate.prototype.salute = function() {
alert('I\'m ' + this.name);
};
var Pirate = function(name) {
// Esto seria el equivalente a super(name)
Person.call(this, name);
};
// Extendemos
Pirate.prototype = new Person;
// Sobreescribimos el metodo salute
Pirate.prototype.salute = function() {
alert('ARRRRRRR! I\'m ' + this.name );
};
var jose = new Person('José');
jose.salute(); // I'm José
var sandokan = new Pirate('Sandokan');
sandokan.salute(); // ARRRRRRR! I'm Sandokan
PD: Si queres, plantea un diseño y lo plasmamos a codigo, probablemente sea lo mejor para sacarte las dudas.