PregoOriginariamente inviato da SoulStorm892
Grazie compagno![]()
Occhio però che la riga Player.constructor.prototype = Sprite; è semanticamente senza senso e devi rimuoverla. Il costruttore di Player (che è una funzione) è Function: e tale lo devi lasciare.
Lo so che è poco intuitivo. Sia che tu faccia Player.prototype = new Sprite() che se tu faccia Player.prototype = new SpriteBlank() il prototipo di Player erediterà le proprietà del prototipo di Sprite: questo perché in precedenza avevi scritto SpriteBlank.prototype = Sprite.prototype. Il motivo per cui ti conviene far così è che Sprite() richiede un argomento, se facessi Player.prototype = new Sprite([che ci metto qui dentro?]) avresti il prototipo di Player con una proprietà surname settata su undefined. Spero sia chiaro.Originariamente inviato da SoulStorm892
perche' devo passare per forza da un una classe vuota? se scrivo Player.prototype = new Sprite() non dovrebbe essere la stessa cosa?
P.S. Se proprio non riesci a tenerti la funzione SpriteBlank, cancellala e sostituisci
concodice:SpriteBlank.prototype = Sprite.prototype; Player.prototype = new SpriteBlank();
che è esattamente la stessa cosa. Considera però che la funzione Object.create() è una new entry in JavaScript e potrebbe non essere supportata da tutti i browsers.codice:Player.prototype = Object.create(Sprite.prototype);![]()


Rispondi quotando