ho trovato questa definizione qui: https://medium.com/javascript-scene/10-interview-questions-every-javascript-developer-should-know-6fa6bdf5ad95#.y0nc8kx34Differenza tra eredità classica e prototipi eredità
Non sembra imbarazzante a voi? Questa definizione ha senso? Per me in entrambi i casi c'è un uso di un costruttore (con new è possibile sovrascrivere l'oggetto restituito che è tutto) e in entrambi i casi c'è un'eredità di prototipo. Mi manca qualcosa o la definizione di cui sopra non è veramente accurata?
* 3. Qual è la differenza tra ereditarietà classica e eredità prototipale?
Ereditarietà delle classi: le istanze ereditano dalle classi (come un modello, una descrizione della classe) e creano relazioni di sottoclasse: tassonomie di classe gerarchica. Le istanze sono tipicamente istanziate tramite le funzioni di costruzione con la parola chiave new
. L'ereditarietà di classe può o non può utilizzare la parola chiave class
da ES6.
Eredità prototipale: le istanze ereditano direttamente da altri oggetti. Le istanze sono tipicamente istanziate tramite le funzioni di fabbrica o Object.create()
. Le istanze possono essere composti da molti oggetti diversi, consentendo una facile eredità selettivo. *
Questo non è giusto a tutti. Anche usando la sintassi 'class' in ES6, è ancora un'eredità prototipale. La differenza non riguarda la sintassi della dichiarazione utilizzata, ma il modo in cui funziona in pratica. – jfriend00
Beh, si dice "tipicamente". Non c'è però un'ereditarietà classica in JS, solo la sintassi che nasconde l'eredità prototipale. – MinusFour
Lo so bene. Sento che l'autore non capisce veramente come funziona l'ereditarietà di javascript e lo mescola con altre più tipiche conoscenze delle lingue OO, ma voglio essere sicuro che non mi manchi niente prima di incolparlo. –