Grazie compagnoScherzi a parte grazie davvero perche' partendo dal tuo esempio ho ottenuto quello che volevo, ora l'ereditarieta` e l'overload funzionano insieme:
codice:/* sprite class */ function SpriteBlank(){} function Sprite (surname) {this.surname = surname;} Sprite.prototype.getName = function (the) { console.log("(caller: sprite)"); alert(this.name + the + this.surname); } /* player class */ function Player (name,surname) { //Sprite.apply(this, arguments); Sprite.call(this, surname); this.name = name; } Player.constructor.prototype = Sprite; SpriteBlank.prototype = Sprite.prototype; Player.prototype = new SpriteBlank(); //Player.prototype = new Sprite("jack"); Player.prototype.getName = function (the) { console.log("(caller: player)"); this.constructor.prototype.getName.call(this,the); } var prova = new Player("jack", "ripper"); prova.getName(" the ");
Nonostante il risultato non ho comunque capito queste tre righe:
perche' devo passare per forza da un una classe vuota? se scrivo Player.prototype = new Sprite() non dovrebbe essere la stessa cosa?codice:Player.constructor.prototype = Sprite; SpriteBlank.prototype = Sprite.prototype; Player.prototype = new SpriteBlank();

Scherzi a parte grazie davvero perche' partendo dal tuo esempio ho ottenuto quello che volevo, ora l'ereditarieta` e l'overload funzionano insieme:
Rispondi quotando