Sto rivedendo un codice JavaScript di un collega e ha scritto una funzione prototipo di Oggetto che ritengo non sia corretta riguardo i principi della programmazione orientata agli oggetti.È corretto invocare il costruttore di un oggetto JavaScript in una delle funzioni prototipo?
Game.prototype.reset = function() {
if (game.over) {
game.over = false;
game = new Game(players);
}
}
Un paio di righe di seguito, la variabile di gioco è stata dichiarata come variabile globale.
var game = new Game(players);
Quindi, è corretto creare un nuovo oggetto di gioco da uno dei suoi costruttori? Il codice funziona perfettamente. Grazie!
Si presuppone che 'reset' debba reimpostare l'istanza su cui è chiamato. Potrebbe non essere il caso. – Oriol
@Oriol Allora perché metterlo sul prototipo? Questa probabilmente non è una grande domanda per SO, ma questo solleverebbe sicuramente alcune domande in una revisione del codice. –
@JamesMontagne Ad esempio, poiché il costruttore può essere definito all'interno di un ambito a cui non si ha accesso. Solo alcune istanze potrebbero essere state esportate all'esterno, quindi il metodo è stato inserito nel prototipo anziché ad es. il costruttore. Probabilmente non è il caso, ma è ancora possibile. – Oriol