Desidero creare istanze univoche di un set di automobili che persone diverse possono contenere. Le auto avranno specifiche di base simili, ma alcune delle loro proprietà e metodi varieranno.Come si crea un'istanza di un'istanza in JavaScript
Il problema che ho è che non riesco a capire come dovrebbe funzionare. Come gestisci o crea istanze di istanze in JavaScript?
var Car = function(make, country) {
this.make = make;
this.country = country;
};
var Ferrari = new Car('Ferrari', 'Italy');
var fred = new Person() {};
var fred.cars['Ferrari'] = new Ferrari(1200, 300000);
Ciò causa questo errore, per ovvi motivi. Sono consapevole che non è un costruttore (vedi sotto).
Uncaught TypeError: Ferrari is not a constructor
Quello che sto cercando è qualcosa di simile. Ogni diversa istanza di una Ferrari avrà un prezzo e un miliardo diversi.
var Ferrari = function(currentPrice, miles) }
this.currentPrice = currentPrice;
this.miles = miles;
// this is an instance of car, aka it needs the result of this:
// new Car('Ferrari', 'Italy');
};
La Ferrari di Fred è un'istanza della Ferrari, che è un'istanza di Car. Il problema è che non riesco a pensare a un modo per fare un costruttore a costruire un costruttore. C'è un modo per farlo, o sto solo facendo questo nel modo sbagliato?
Altre note:
So che potrei essenzialmente solo rendere ogni tipo di auto un oggetto JSON-come statico e poi fare le istanze di quel e aggiungere nuovi valori univoci. Tuttavia, mi piacerebbe essere in grado di mantenere l'auto come un costruttore in modo da poter facilmente fare di più quando ne ho bisogno.
Mi manca chiaramente qualche comprensione di OOP o JavaScript qui, ma sarebbe bello se qualcuno potesse indicarmi la giusta direzione.
'Ferrari' dovrebbe essere una sottoclasse, non un'istanza; dovrebbe "estende l'auto". – jonrsharpe
Per chiunque fosse confuso come me, c'è una buona pagina su MDN che spiega come creare una gerarchia di oggetti in JS rispetto alle lingue basate su classi: https://developer.mozilla.org/en/docs/ Web/JavaScript/Guida/Dettagli_della_Oggetto_Modello – jamcd