Sto seguendo un tutorial su OOP in JavaScript (javascriptissexy.com utilizzando OOP in JS: Cosa devi sapere).
L'istruttore sta spiegando il modello Costruttore / Prototipo della creazione dell'oggetto. Capisco cosa sta succedendo, ma ho una domanda scottante a cui lui non risponde!
Iniziamo così:
function User(name, email) {
this.name = name,
this.email = email,
this.scores = [],
this.etc = etc
}
Ho capito e ora ogni var xxx = nuovo utente ("nome", "email") avrà un xxx.name, xxx.email, xxx.scores, ecc.
Ma ora, sovrascriviamo il prototipo:
User.prototype = {
constructor: User;
saveScore: function(...){...},
changeEmail: function(...){...},
showNameAndScore: function(...){...}
}
Ora ogni var xxx = nuovo utente (...) erediterà i metodi saveScore, changeEmail e showNameAndScore.
Sono nuovo di zecca, ma da quello che ho capito, avrei potuto includere queste funzioni all'inizio:
function User(...) {
this.name = name,
this.saveScore = function(...) {...},
...
}
Invece di modificare subito il prototipo.
Sto aspettando che l'autore mi dica che includiamo queste funzioni nel prototipo perché saranno copie esatte in carbonio che l'utente non può modificare e quindi devono solo definirle una volta (nel prototipo) piuttosto che su ogni istanza di un utente.
O sta solo cercando di dimostrare i diversi sapori dell'ereditarietà?
Grazie in anticipo!